OpenCV基本操作
OpenCV基本操作
图像读取
cv.imread
1读取的方式分别有彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数;2以灰度模式加载图像;3包括alpha通道的加载图像模式。
可以分别使用1,0,-1来代替上面三个标志。
在图像读取的过程中,如果加载路径有错误,并不会报错,而是返回一个空值。并在下一次调用时报错。
显示图像
cv.imshow(显示图像的窗口名称,以字符串类型表示;要加载的图像)
注意:在调用显示图像的API后,要调用waitKey给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来。
图像保存
cv.imwrite(文件名要保存在哪里;要保存的图像)
几何图形绘制
绘制直线
cv.line(img,start,end,color,thickness)
img:要绘制直线的图像
start,end:直线的起点和终点。
color:线条的颜色
thickness:线条的宽度
绘制圆形
cv.circle(img,centerpoint,r,color,thickness)
img:要绘制圆形的图像
centerpoint,r:圆心和半径
color:线条的颜色
thickness:线条宽度,为-1时生成闭合图案并填充颜色
绘制矩形
cv.rectangle(img,leftupper,rightdown,color,thickness)
img:要绘制矩形的图像
leftupper,rightdown:矩形的左上角和右下角坐标
color:线条的颜色
thickness:线条的宽度
向图像中添加文字
cv.putText(img,text,station,font,fontsize,color,thickness,cv.LINE_AA)
img:图像
text:要写入的文本数据
station:文本的放置位置
font:字体
fontsize:字体大小
获取并修改图像中的像素点
通过行列坐标值获取该像素点的像素值。对于BGR图像,它返回一个蓝绿红值的数组。对于灰色图像,仅返回相应的强度值。使用相同的方法对像素值进行修改。
获取图像的属性
图像属性包含行数,列数,通道数,图像数据类型,像素数等。
形状:img.shape
图像大小:img.size
数据类型:img.dtype
图像通道的拆分与合并
拆分:b,g,r=cv.split(img)
合并:img=cv.merge((b,g,r))
色彩空间的改变
OpenCV中有150多种颜色空间转换方法。最广泛使用的转换方法有两种,BGR和灰度图、BGR和HSV之间的转换。
cv.cvtColor(需要转换的图片,转换的标志)
标志包括:cv.COLOR_BGR2GRAY;cv.COLOR_BGR2HSV
算数操作
图像的加法:cv.add(a,b)。注意在操作时需要保证a,b的尺寸相同。
图像的混合加法:对两幅图像使用不同的权重相加。函数是cv.addWeighted(a,wa,b,wb,c)
a:图像a。
wa:图像a的权重。
b:图像b。
c:常数。
几何变换
图像缩放:cv.resize(src,dsize,fx=0,fy=0,interpolation=cv.INTER_LINEAR)
src:输入图像。
dsize:绝对尺寸,直接指定调整后图像的大小。
fx,fy:相对尺寸,将dsize设置为None,然后将fx和fy设置为比例因子即可。
interpolation:插值方法。其中INTER_LINEAR:双线性插值法;INTER_NEAREST:最近邻插值;INTER_AREA:像素区域重采样(默认);INTER_CUBIC:双三次插值。
图像平移:
将图像按照指定方向和距离,移动到相应的位置。
cv.warpAffine(img,M,dsize)
img:要操作的图像
M:2*3移动举证,对于(x,y)处的像素点,要把它移动到(x+tx,y+ty)处时,M矩阵应如下设置:

注意:将M设置为np.float32类型的Numpy数组。
dsize:输出图像的大小。
注意:输出图像的大小,他应该是(宽度,高度)的形式。请记住,width=列数,height=行数。

浙公网安备 33010602011771号