引入库
import cv2
import numpy as np
from PIL import Image
from matplotlib import pyplot as plt
1、python中通道索引分别为B G R
img = np.ones((300,300,3))
cv2.imshow('img', img)
red = img.copy()
red[:,:,0:2] = 0
cv2.imshow('red', red)
green = img.copy()
green[:,:,0] = 0
green[:,:,2] = 0
cv2.imshow('green', green)
blue = img.copy()
blue[:,:,1:3] = 0
cv2.imshow('blue', blue)
cv2.waitKey(0)

2、opencv读取图片格式是BGR
原图

(1)opencv读取并显示:
img = cv2.imread('D:/pycharm_projects/Reconstruct_srcnn_main/0803x4.png')
cv2.imshow("img",img)
cv2.waitKey(0)

(2)PIL读取、plt 显示:
img = Image.open('D:/pycharm_projects/Reconstruct_srcnn_main/0803x4.png')
plt.figure("IMG")
plt.imshow(img)
plt.show()

(3)Opencv读取、plt 显示:
img = cv2.imread('D:/pycharm_projects/Reconstruct_srcnn_main/0803x4.png')
plt.imshow(img)
plt.show()

(4)opencv读取 —— 通道变成rgb —— plt 显示:
img = cv2.imread('D:/pycharm_projects/Reconstruct_srcnn_main/0803x4.png')
b,g,r = cv2.split(img)
img_rgb = cv2.merge([r,g,b])
plt.imshow(img_rgb)
plt.show()

总结:
- opencv读取与显示:格式为BGR
- PIL与plt配合读取与显示:格式为RGB
- opencv读取为BGR,plt显示按RGB:结果与原图不符
- opencv读取为BGR,转换成RGB通道,再用plt显示:结果与原图一致