1.图像分类
rgb图像、灰度图像、二值图像
2.修改像素颜色
可以对多个像素处理
image[100:150,100:150] = [255,255,255] (这是一个彩色图像)
3.使用numpy包访问像素
创建图像: np.ones((101,101,3))
获得像素:image.item(x,y,color) (相对于彩色图片)
修改像素:image.itemset((x,y,color),255)
4.获取图像属性
image.shape() 灰度图像得到高宽,彩色图像还得到通道数
image.size() 灰度图像得到行列积,彩色图像得到行列通道数积
image.dtype() 获得图像数据类型
5.图像ROI
6.通道的拆分与合并
b,g,r = cv2.split(img)
image = cv2.merge([b,g,r])
7.图像加法运算
numpy加法:取模加法:像素值和小于等于255,取原值,大于255则结果对255取模
调用方法:直接用加号
opencv加法:饱和运算:像素值和小于等于255,则取原值,大于255,取255
调用方法:cv2.add(img1,img2)
8.图像融合
结果图像=图像1*系数1+图像2*系数2+亮度调节度
函数:addWeighted(图1,系数1,图2,系数2,亮度)
9.类型转换
cvtColor(图像,转换形式)
10.图像缩放
cv2.resize(图像,(行,列)) 按照像素缩放
cv2.resize(图像,NONE,fx=0.5,fy=0.5) 按照比例缩放
11.图像翻转
cv2.flip(src,flipCode)
flipCode = 0实现上下翻转 ;=1左右翻转 ;=负数上下左右翻转
12.阈值分割
阈值分割:
二进制阈值化:将大于阈值处理为最大值,否则处理为最小值
反二进制阈值化:将大于阈值处理为最小值
截断阈值化:将大于阈值的值处理为阈值,否则不变(相当于把图片中比较亮的部分处理为阈值)
反阈值化为0:将大于阈值的值处理为0,否则不变
阈值化为0:将小于阈值的值处理为0.大于等于阈值的值则不变
threshold函数进行阈值分割:
retval,dst = cv2.threshold(src,thresh,maxval,type)
retval:阈值 dst:处理结果 src:源图片 thresh:阈值 maxval:最大值 type:种类
13.图像平滑处理
均值滤波:
1.定义
2.函数调用:cv2.blur(图像,(5,5)) (第二个参数代表周围的像素的选区范围)
方框滤波:
1.定义及函数调用:
高斯滤波:
1.定义:
2.函数调用:
dst = cv2.GaussianBlur(src,ksize,sigmaX)
中值滤波:
1.定义:
2.函数调用:
dst = cv2.medianBlur(src,ksize) ksize必须是比1大的奇数,代表n*n的矩阵