因为我是对图像处理的方面比较感兴趣的。所以我也是对python的视觉处理模块opencv进行了学习。这个模块虽然是传统方法,但还是蛮有用的。而且它有上千个API,我总结了以下我所学到的。开始吧。
cv2是opencv的扩展模块。
imread第二个参数类型:
cv2.imwrite:保存图片
下文中:绝对路径代表绝对路径也行
改变图片某行某列的像素:
批量改变图片像素:
获取图像属性:
拆分通道:
合并通道:
图片移位:
将两张图片加在一起:1、取模加法 2、饱和运算
注意:两张图片的大小和类型相等
减法(subtract)、乘法(multiply)和除法(divide)和加法(add)类似
图像融合:将两张或两张以上的图片融合到一张图片上
图像缩放(参数必须为整数):
图像翻转:调用cv2.flip(原始图像,flipcode)
三种情况:
filpcode=0:以x轴为对称轴的上下翻转
flipcode>0:以Y轴为对称轴的左右翻转
flipcode<0:X、Y轴各翻转一次
图像颜色反转:
图片打上马赛克:
图片上写字:
图片修补:
图片亮度增强:
图像阈值分割:调用了threshold函数
五种分割方法:
二进制阈值化(cv2.THRESH_BINARY):选定一个阈值,用每一个像素的阈值和该阈值比较,大于该阈值则将该像素阈点值设为最大,若小于该阈值,则将该像素点阈值设为零。
反二进制阈值化(cv.THRESH_BINARY_INV):选定一个阈值,用每一个像素的阈值和该阈值比较,大于该阈值则将该像素点的阈值设为零,若小于该阈值,则将该像素点阈值设为最大。
截断阈值化(cv.THRESH_TRUNC):选定个阈值,用每一个像素的阈值和该阈值比较,大于该阈值则将该像素点的阈值设为该阈值,小于该阈值的像素点的阈值不变。
阈值化为0(THRESH_TOZERO):先选定一个阈值,像素点的灰度值大于该阈值的不进行任何改变;像素点的灰度值小于该阈值的,其灰度值全部变为0。
反阈值化为0(THRESH_TOZERO_INV):先选定一个阈值,像素点的灰度值小于该阈值的不进行任何改变;像素点的灰度值大于该阈值的,其灰度值全部变为0。
还有另一种阈值分割函数:自适应阈值函数 cv2.adaptiveThreshold()