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的權值,取不同的值形成不同的灰度圖像。由於人眼對綠色最為敏感,紅色次之,對藍色的敏感性最低,因此使將得到較易識別的灰度圖像。一般時,得到的灰度圖像效果最好。
現在還不清楚單通道提取的圖像是怎樣算法