代码语言:javascript复制
import numpy as np
import cv2
img=np.zeros((300,300,3),dtype=np.uint8)#生成三维数组
img[:,0:100,0]=255#B通道
img[:,100:200,1]=255#G通道
img[:,200:300,2]=255#R通道
print("img=n",img)
cv2.imshow("img",img)#显示图像
cv2.waitKey()
cv2.destroyAllWindows()
算法:RGB模式的彩色图像在读入OpenCV内进行处理时,按照行方向一次读取该RGB图像的B通道、G通道、R通道的像素点,并将像素点以行作为单位存储在ndarray的列中。
- 首先分别生成B、G、R三个数组
- 其初始值都是0
- 分别改变各通道值
image[0,0,0]:
- 第一个索引表示第0行
- 第二个索引表示第0列
- 第三个索引表示第0个颜色通道
img[0,0]:访问图像第0行第0列像素点的BGR值。图像是BGR格式,得到的数值为[0,0,255];
img[0,0,0]:访问图像第0行第0列第0通道的像素值。图像是BGR格式,第0个通道是B通道,得到B通道内第0行第0列的位置所对应的值0;
img[0,0,1]:访问图像第0行第0列第1通道的像素值。图像是BGR格式,第1个通道是G通道,得到G通道内第0行第0列的位置所对应的值255;
img[0,0,2]:访问图像第0行第0列第2通道的像素值。图像是BGR格式,第2个通道是R通道,得到R通道内第0行第0列的位置所对应的值255。