RGB的图像可以拆分出R通道,G通道和B通道。
这里只用了一个简单的代码:
1 import cv2 2 dog = cv2.imread("/home/miao/dog.jpg") 3 cv2.imshow("dog1" , cat) 4 b = dog[:,:,0] 5 g = dog[:,:,1] 6 r = dog[:,:,2] 7 cv2.imshow("b" , b) 8 cv2.imshow("g" , g) 9 cv2.imshow("r" , r) 10 dog[:,:,0] = 0 11 cv2.imshow("dogb0" , dog) 12 dog[:,:,1] = 0 13 cv2.imshow( " dogb0g0" , dog) 14 cv2.waitKey() 15 cv2.destroyAllWindows()
显示的图片如下:
原图:
单通道提取:
提取B通道
提取G通道
提取R通道
B通道值设置为0
B通道值,G通道值设置为0
为什么单通道提取和将两个通道的值设置为0的图片不一致?
单通道提取的图像为灰度图像
而设置其他通道值为0图像依然是彩色图像
为什么提取不同的通道的灰度图像也不一样
灰度图像有不同的算法
1)最大值法:使转化后的R,G,B得值等于转化前3个值中最大的一个,即:R=G=B=max(R,G,B)。这种方法转换的灰度图亮度很高。
2)平均值法:是转化后R,G,B的值为转化前R,G,B的平均值。即:R=G=B=(R+G+B)/3。这种方法产生的灰度图像比较柔和。
3)加权平均值法:按照一定权值,对R,G,B的值加权平均,
即:分别为R,G,B的权值,取不同的值形成不同的灰度图像。由于人眼对绿色最为敏感,红色次之,对蓝色的敏感性最低,因此使将得到较易识别的灰度图像。一般时,得到的灰度图像效果最好。
现在还不清楚单通道提取的图像是怎样算法