opencv-python像素通道理解

图片

读取图片

img = cv2.imread("F:/pc_workspace/opencv_exercises-master/02.jpg")
print(img.shape)

(240, 320, 3)

长(height),宽(weight),通道数(channel)
所以计算机中图片是一个三维的矩阵

通道数什么意思?

1、美术三原色:美术教科书讲的是绘画颜料的使用,色彩调色是红、黄、蓝为三原色。
2、色光三原色:人的眼睛是根据所看见的光的波长来识别颜色的。可见光谱中的大部分颜色可以由三种基本色光按不同的比例混合而成,这三种基本色光的颜色就是红(Red)、绿(Green)、蓝(Blue)三原色光。
计算机使用的是色光三原色
通道数3是指由三种原色组成RGB
在opencv中顺序是,B,G,R

计算机是如何表示颜色的?

图片的最小单位是像素,而一个像素,是由三原色组成。

前面我们提到光的三原色是红绿蓝,将这三种颜色按照不同比例、不同强度进行混合就可以得到各种各样的其他颜色。
如果我们需要让显示器显示出对应的色彩,我们只需要告诉它们对应的R(红)、G(绿)、B(蓝)含量即可。
例如我们需要让电脑显示纯绿色,我们就告诉它:绿色的发光强度达到最大(255),红色和蓝色不发光,表示出来就是RGB(0,255,0),这个颜色就表示纯绿色。

例如“640x480显示器”,它表示横向640像素和纵向480像素(就像VGA显示器),因此其总数为640 × 480 = 307,200像素
每个像素都有对应的像素值,例如,位置[640,480]的像素值为[0,0,0],即黑色。
如果所有像素值都是0,那么,如下

 img = np.zeros([400,400,3],np.uint8)    
 #创建一个三维数组高400,宽400,信号通道3个,初始值都为0,每通道占8位个(那么值最大是255)

全黑

img = np.zeros([400, 400, 3], np.uint8)
img[:,:,0]=255
cv2.imshow("pic",img)

将0通道的400*400矩阵值全变为255,0通道对应B,即蓝色
在这里插入图片描述
则1通道为绿色,2通道为红色

img = np.zeros([400, 400, 3], np.uint8)
img[:,:,2]=255
cv2.imshow("pic",img)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fzf1996/article/details/94717920