OpenCV图像处理笔记[02]
7. 通道的拆分与合并
-
拆分通道
例:
Import v2 Import numpy as np a = cv.imread(“image\lenacolor.png”) b,g,r = cv2.split(a) cv2.imshow(“B”,b) cv2.imshow(“G”g) cv2.imshow(“R”,r) cv2.waitKey(0) cv2.destroyAllWindows()
- 合并通道
bgr = cv2.merge([b,g,r])
rgb = cv2.merge([r,g,b])
使用不同的顺序合并得到的结果不一样
8. 图像加法
-
numpy加法
-
取模加法 :结果 = 图像1 + 图像2
-
结果 = 图像1 + 图像2 = \(\begin{cases} 像素值 <= 255 , 图像1 + 图像2\\ 像素值 > 255, 结果对255取模\end{cases}\)
-
-
OpenCV加法
-
饱和运算:结果 = cv2.add(图像1,图像2)
-
结果 = cv2.add(图像1,图像2) $ = \begin{cases}像素值 <= 255, 图像1 + 图像2\像素值 > 255, 取值255\end{cases}$
-
9. 图像融合
-
将两张或两张以上的图像信息融合到一张图像上。
-
融合的图像含有更多的信息、能够更方便人来观察或者计算机处理。
-
图像融合:结果图像 = 图像1*洗漱1 + 图像2 * 系数2 + 亮度调解量
例: img = img1 * 0.3 + img2 * 0.7 + 18
函数addweighted
Dst = cv.addweighted(src1,alpha,src2,alpha,gamma) 参数gamma不能省略
10. 类型转换
-
彩色转灰度
-
BGR转RGB
-
灰度转BGR
Opencv提供200多种不同类型之间的转换
Cv2.COLOR_VGR2GRAY
Cv2.COLOR_BGR2RGB
Cv2.COLOR_GRAY2BGR
11. 图像缩放
-
Dst = cv2.resize(src,dsize[,dst[,fx[,fy[,interpolation]]]])
Dst = cv2.resize(src,dsize)
Desize(列,行)
例:
B = cv2.resize(a,(round(cols * 0.5),round(rows * 1.2)))
列变为原来的0.5倍,行变为原来的1.2倍
B = cv2.resize(a,none,fx = 1.2,fy = 0.5)
12. 图像反转
- Dst = cv2.flip(src,flipCode)
- flipCode = 0 以x轴为对称轴上下翻转
- flipCode > 0 以y轴为对称轴左右翻转
- flipcode < 0 以x轴、y轴上下左右同时翻转