刚开始学习python—opencv,感觉要比C或者C++的代码要简单,不过刚开始接触,还有些语法上的不熟悉。
如何只保留某一个通道并显示呢?
b[:, :, 1] = 0--------前两个参数是指的h,w,冒号指全部取得,最后一个参数是指的通道序列号,python里面图像是以BGR顺序存储的,b,g,r分别代表序列号0,1,2,所以这一句代码就是指通道序列号为1的,即为g通道,该通道的h和w遍历,全部赋值为0;
b[:, :, 1] = 0
b[:, :, 2] = 0----------这里就是某图片序列号为1和2的通道所有值设置为0,那么只剩下序号为0的通道的像素值没有赋值为0,即,只保留了b通道像素值。该图会显示蓝色。
import cv2
image = cv2.imread('download.jpg')
b = image.copy()
# set green and red channels to 0
b[:, :, 1] = 0
b[:, :, 2] = 0
g = image.copy()
# set blue and red channels to 0
g[:, :, 0] = 0
g[:, :, 2] = 0
r = image.copy()
# set blue and green channels to 0
r[:, :, 0] = 0
r[:, :, 1] = 0
# RGB - Blue
cv2.imshow('B-RGB', b)
# RGB - Green
cv2.imshow('G-RGB', g)
# RGB - Red
cv2.imshow('R-RGB', r)
cv2.waitKey(0)