1.用到的API
cv2.split()
其中img为需要分割通道的img,返回值的数量取决于图片的通道数,这里分别用b,g,r来接收图片img的三通道
cv2.merge()
参数是要拼接的通道,注意要在所有的通道外再加一层括号。返回值是拼接之后得到的图片
2.完整代码:
import cv2
import numpy as np
#生成一张纯黑色的图片
img = np.zeros((200,200,3),np.uint8)
#分别获取它三个通道的值
b,g,r = cv2.split(img)
#分别对某个通道的值进行修改
b[10:100,10:100] = 255#对b这个通道,x坐标从10到100,y坐标从10到100这个矩形区域的值设为255
g[10:100,10:100] = 255
#把 b,g,r三个通道进行合并
img2 = cv2.merge((b,g,r))
#把两张图片横向拼接成一张来放到同一个窗口上显示,方便进行对比
cv2.imshow("img",np.hstack((img,img2)))
cv2.waitKey(0)
cv2.destroyAllWindows()
作用是把一个纯黑色图片(三个通道的所有像素点上的值都为0)的b,g,r三通道提取出来,把b和g通道坐标从(10,10)到(100,100)的矩形区域内的值都改成255,然后把b,g,r三通道合并成一张新的图片。