opencv学习记录之获取图像单通道

RGB的图像能够拆分出R通道,G通道和B通道。算法

这里只用了一个简单的代码:spa

 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()

 

显示的图片以下:3d

原图:code

 

 单通道提取:blog

提取B通道图片

 

 提取G通道it

 

 提取R通道class

 

 B通道值设置为0import

 

 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的权值,取不一样的值造成不一样的灰度图像。因为人眼对绿色最为敏感,红色次之,对蓝色的敏感性最低,所以使将获得较易识别的灰度图像。通常时,获得的灰度图像效果最好。

如今还不清楚单通道提取的图像是怎样算法

相关文章
相关标签/搜索