我们知道opencv默认是以BGR
通道顺序打开的和显示的,而PIL.Image是以RGB
打开和显示的,要想使用opencv打开的图片在PIL.Image中显示就必须转换通道(不转换通道也可以显示,但是颜色会发生变化)。
Opencv转PIL.Image
cv2_img = cv2.imread("test.jpg") # 返回的数据默认就是numpy.arrary类型
cv2.imshow("cv2_img", cv2_img)
cv2.waitKey(0)
pil_img = Image.fromarray(cv2.cvtColor(cv2_img,cv2.COLOR_BGR2RGB))
pil_img.show()
PIL.Image转Opencv
pil_img = Image.open("test.jpg")
pil_img.show()
cv2_img = cv2.cvtColor(np.asarray(pil_img), cv2.COLOR_RGB2BGR)
cv2.imshow("cv2_img", cv2_img)
cv2.waitKey(0)