彩色圖像由多個通道組成:紅色,綠色和藍(lán)色組件
拆分圖像顏色通道使用cv2.split(image)方法
合并 使用 cv2.merge([B,G,R]) 方法
import numpy as np
import argparse
import cv2
ap = argparse.ArgumentParser()
ap.add_argument("-i","--image",required =True, help="Path to the image")
args = vars(ap.parse_args())
image = cv2.imread(args["image"])
(B,G,R) = cv2.split(image)
# 我們在RGB色彩空間中考慮圖像 - 紅色像素第一,綠色像素第二,藍(lán)色像素第三。
#但是,OpenCV以反向通道順序?qū)GB圖像存儲為NumPy數(shù)組。而不是以RGB順序存儲圖像,而是以BGR順序存儲圖像;因此我們按照相反的順序解開元組
cv2.imshow("Red",R)
cv2.imshow("Green",G)
cv2.imshow("Blue",B)
merged = cv2.merge([B,G,R])
cv2.imshow("Merged",merged)
cv2.waitKey(0)
cv2.destroyAllWindows()
zeros = np.zeros(image.shape[:2],dtype="uint8")
cv2.imshow("Red",cv2.merge([zeros,zeros,R]))
cv2.imshow("Green",cv2.merge([zeros,G,zeros]))
cv2.imshow("Blue",cv2.merge([B,zeros,zeros]))
cv2.waitKey(0)
# 為了顯示頻道的實際“顏色”,我們首先需要使用cv2.split來分割圖像。
# 然后,我們需要重新構(gòu)建圖像,
# 但這次設(shè)置所有像素為0,除了當(dāng)前通道
|

圖·1

圖·2
把時間當(dāng)朋友。