import cv2
import numpy as np
from matplotlib import pyplot as plt
# 加载图像文件(和代码文件在同一文件夹)
image = cv2.imread('./susu (1).jpg')
# OpenCV默认使用BGR颜色顺序
B, G, R = cv2.split(image)
# 创建全黑的图像用于仅显示一个颜色通道
zeros = np.zeros(image.shape[:2], dtype="uint8")
# 对于每个颜色分量,创建颜色的图像
img_red = cv2.merge([R, zeros, zeros])
img_green = cv2.merge([zeros, G, zeros])
img_blue = cv2.merge([zeros, zeros, B])
# 使用matplotlib显示结果
plt.figure(figsize=(10, 7))
# OpenCV默认使用BGR颜色顺序,因此在显示图像是要转换为RGB顺序,否则原图像的颜色会出错,可以自己试试
plt.subplot(1, 4, 1), plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB)), plt.title('Original')
plt.subplot(1, 4, 2), plt.imshow(img_red), plt.title('Red component')
plt.subplot(1, 4, 3), plt.imshow(img_green), plt.title('Green component')
plt.subplot(1, 4, 4), plt.imshow(img_blue), plt.title('Blue component')
plt.show()
图中的coser:G44不会受伤