Python opencv常用函数集合

1.读入图像:a = cv2.imread(文件名, [,显示控制参数])

 常用参数:cv.IMREAD_UNCHANGED, cv.IMREAD_GRAYSCALE, cv.IMREAD_COLOR

2.显示图像:cv2.imshow(窗口名,图像名)

 示例:cv2.imshow('demo',a)  cv2.waitKey(2000)  cv2.destroyAllWindows()

 显示图像a,显示时间为2000毫秒,然后清除所有窗口

3.图像保存:cv2.imwrite(文件地址,文件名)

 示例:cv2.imwrite('/home/test.jpg', a)

4.图像缩放:cv2.resize(src, dsize)   cv2.resize(src, dsize, fx, fy)

 示例:b = cv2.resize(a,(200,200)) 将图像缩放为200*200

             b = cv2.resize(a, None, fx=0.5, fy=0.7) 将图像a在x轴方向×0.5,y方向*0.7

5.图像翻转: dst = cv2.flip(src, flipCode) 

 flipCode取0以x轴为对称轴翻转,大于0以y轴为对称轴,小于0则以x和y为对称轴翻转两次

6.图像类型转换: b = cv2.cvtColor(a,参数)

 常用参数:cv2.COLOR_BGR2GRAY  cv2.COLOR_GRAY2BGR  cv2.COLOR_BGR2RGB

7.图像二值化:retval, dst = cv2.threshold(src, thresh, maxval, type)

 retval:阈值   dst:处理结果     src:源图像  thresh:阈值  maxval:最大值  type:类型

常用处理类型:

cv2.THRESH_BINARY:大于阈值置为最大值,小于阈值置为0

cv2.THRESH_BINARY_INV:大于阈值置为0,小于阈值置为最大值

cv2.THRESH_TRUNC:大于阈值的置为阈值,小于阈值的不变

cv2.THRESH_TOZERO_INV:大于阈值置为0,小于阈值不变

cv2.THRESH_TOZERO:大于阈值不变,小于阈值置为0

cv2.THRESH_OTSU、cv2.THRESH_TRIANGLE自适应二值化(自动找阈值),配合以上参数使用

8,图像平滑

均值滤波:b = cv2.blur(a,核大小)    示例:b = cv2.blur(a,(5,5)),一个像素取周围5*5区域像素平均值为新值

方框滤波:b = cv2.boxFilter(a,目标图像深度,核大小,normalize属性)

 目标图像深度取-1与原图像一致,normalize表示是否归一化(与均值滤波的区别),归一化则与均值滤波相同,

不归一化则为周围核的和,normalize为1表示归一化,为0表示不归一化,省略表示默认归一化

示例:b = cv2.boxFilter(a,-1,(5,5),normalize=1)

高斯滤波:b = cv2.GaussianBlur(a,ksize,sigmaX),  ksize表示核大小,需要为奇数,sigmaX表示x方向方差

示例:b = cv2.GaussianBlur(a,(3,3),0) sigmaX设为0表示为默认值

中值滤波:b = cv2.medianBlur(a,ksize)  ksize需要为奇数

示例:b = cv2.medianBlur(a,3)

9.形态学变换

图像腐蚀去除噪声,压缩图像,图像膨胀可以扩充图像

图像腐蚀: dst = cv2.erode(src, kernel, iterations)   kernel:卷积核  iterations:迭代次数,iterations省略则默认为1

卷积核生成方法: kernel = np.ones((5,5),np.uint8) 首先导入numpy作为np,示例生成5*5卷积核

示例:kernel = np.ones((5,5),np.uint8)   b = cv2.erode(a,kernel,iterations=1)

图像膨胀:dst = cv2.dilate(src, kernel, iterations)

开运算:先腐蚀后膨胀,去除图像噪声,并保持原有形状

opening = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)

闭运算:先膨胀后腐蚀,关闭前景物体内部小孔或物体内部小黑点

closing = cv2.morphologyEx(img, cv2.MORPH_CLOSE,kernel)

梯度运算:膨胀减去腐蚀,得到图像轮廓

result = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)

礼帽操作:源图像减去开运算图像,得到噪声图像

result = cv2.morphologyEx(img, cv2.MORPH_TOPHAT, kernel)

黑帽操作:闭运算图像减去源图像,得到图像内部小孔或图中小黑点

result = cv2.morphologyEx(img, cv2.MORPH_BLACKHAT, kernel)

 

 

 

 

你可能感兴趣的:(Python opencv常用函数集合)