RGB模式的彩色图像在读入OpenCV内进行处理时,会依次读取该RGB图像的B通道、G通道、R通道。
可使用表达式访问数组内的值。如:img[0,0,0]表示访问图像img的B通道内的第1行第1列上的像素点。
img[0,0,0]中:
- 第1个索引表示第几行
- 第2个索引表示第几列
- 第3个索引表示第几个颜色通道
注意:索引都是从0开始,0表示第1个。
举例如:
- img[0,0]:表示访问图像img第1行第1列像素点的BGR值。得到的数值形如 [?,?,?]
- img[0,0,1]:表示访问图像img第1行第1列第2个通道即G通道的像素值。
代码如下:
import numpy as np
import cv2
# ---使用np.zeros()生成4行3列的3通道三维数组,初始像素值全为0
blue = np.zeros((4, 3, 3), dtype=np.uint8)
#---将blue数组的第2行第1列第3个通道(即R通道)的像素值设为255
blue[1, 0, 2] = 255
print("blue=\n", blue)
cv2.imshow("blue", blue)
cv2.waitKey()
cv2.destroyAllWindows()
控制台输出如下:
blue=
[
[ [ 0 0 0 ] #第1行第1列的BGR值[0 0 0 ]
[ 0 0 0 ] #第1行第2列的BGR值[0 0 0 ]
[ 0 0 0 ] ] #第1行结束
[ [ 0 0 255 ] #第2行第1列的BGR值[0 0 255 ]
[ 0 0 0