import cv2
import matplotlib.pyplot as plt
img = cv2.imread('motor.jpg')
b,g,r = cv2.split(img)
img2 = cv2.merge([r,g,b])
# opencv读取的彩色图像是BGR格式,Matplotlib显示彩色图像是RGB格式。因此,通过plt显示时会有扭曲。
plt.subplot(121);plt.imshow(img)
# 使用cv2.split()和merge()函数处理后,可以正常显示。
plt.subplot(122);plt.imshow(img2)
plt.show()
cv2.imshow('bgr image',img) #opencv正常读取显示彩色图像
cv2.imshow('rgb image',img2) #同理,在plt上正常读取显示的彩色图像在opencv上显示时也会有扭曲。
# cv2.cvtColor(img2,cv2.COLOR_BGR2RGB)后,就可以正常显示。
img3=cv2.cvtColor(img2,cv2.COLOR_BGR2RGB)
cv2.imshow('RGB-BGR image',img3)
cv2.waitKey(0)
cv2.destroyAllWindows()
结果: