opencv学习笔记

目录

1.图像的IO操作、读取和保存

2.绘制几何图形

3.获取图像的属性

4.访问图像的像素,进行通道分离、合并

5.颜色空间的变换

6.图像算术运算


 

1.图像的IO操作、读取和保存

1.1读取图像

cv2.imread('image.jpg', 0)

读取方式的标志

  • 1: cv2.IMREAD*COLOR, 以彩色模式加载图像,任何图像的透明度都将被忽略。默认参数
  • 0:cv2.IMREAD*GRAYSCALE,灰度模式加载图像
  • -1:cv2.IMREAD_UNCHANGED,包括alpha通道的加载图像模式

1.2显示图像

cv2.imshow('image', img)

在调用显示图像的API后,要用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示。

1.3保存图像

cv2.imwrite('python', img)

2.绘制几何图形 

2.1绘制直线

cv2.line(img, start, end, color, thickness)
  •  img:要绘制直线的图像
  • start, end:直线的起点和终点
  • color:线条的颜色
  • thickness:线条宽度

2.2绘制圆形

cv2.circle(img, centerpoint, r, color, thickness)
  • img:要绘制圆形的图像
  • centerpoint,r:圆心和半径
  • color:线条颜色
  • thcikness:线条宽度。为-1时生成闭合图案并填充颜色

2.3绘制矩形

cv2.rectangle(img, leftupper, rightdown, color, thickness)
  • img:要绘制矩形的图像
  • leftupper, rightdown:矩形的左上角和右下角
  • color:线条颜色
  • thickness:线条宽度

2.4添加文字

cv2.putText(img, text, station, font, fontsize, color, thickness, cv.LINE_AA)
  • img:图像
  • text:写入文本的内容
  • station:文本框的位置
  • font:字体
  • fontsize:字体大小

3.获取图像的属性

  • 形状:img.shape
  • 图像大小:img.size
  • 数据类型:img.dtype 

4.访问图像的像素,进行通道分离、合并

# 通道拆分
b, g, r = cv2.split(img)
# 通道合并
img = cv2.merge((b, g, r))

5.颜色空间的变换

opencv有150多种颜色空间转换方法。最常用的有两种,BGR-->Gray和BGR-->HSV。

cv2.cvtColor(input_image, flag)
  •  flag:转换类型。cv2.COLOR_BGR2GRAY:BGR-->Gray, cv2.COLOR_BGR2HSV:BGR-->HSV。

6.图像算术运算

6.1 图像加法

两个图象是相同大小和类型,或者第二个图象是标量值。

opencv加法和numpy加法之间存在差异,opencv是饱和操作,numpy是模运算。

x = np.unit8([250])
y = np.nint8([10])
print(cv2.add(x,y))  # 250 + 10 = 260 =>255
print(x + y)         # 250 + 10 = 260 % 256 = 4

6.2图像混合

图像相加,但是两幅图像权重不同。有一种混合或者透明的感觉。公式为:

g(x) = (1 - a)*f(x) + a*g(x).     0<=a<=1

cv2.addWeighted(img1, 0.7, img2, 0.3, 0)

dst = a1*img1 + a2*img2 + a3  a3一般为0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值