介绍
opencv读取的图片,是BGR顺序,与现在主流格式RGB不同,所以用cv2读取图片后,不能直接用 PIL 或 matplotlib 显示,否则颜色不正确。
例子
原图:
cv2读取图片后,直接用 PIL 显示:
import cv2
from PIL import Image
background=cv2.imread("/Users/mym/Desktop/可删除/QQ20200428-151456.jpg")
print(background.shape)
Image.fromarray(background)
结果如下图:
所以需要将 BGR 格式 转 RGB 格式,才能正常显示
第一种 BGR 转 RGB 方式
通过 cv2.cvtColor() 函数转换
import cv2
from PIL import Image
background=cv2.imread("/Users/mym/Desktop/可删除/QQ20200428-151456.png")
print(background.shape)
background2 = cv2.cvtColor(background, cv2.COLOR_BGR2RGB)
Image.fromarray(background2)
第二种 BGR 转 RGB 方式
通过 numpy 倒序
import cv2
from PIL import Image
background=cv2.imread("/Users/mym/Desktop/可删除/QQ20200428-151456.png")
print(background.shape)
background2=background[:,:,::-1]
Image.fromarray(background2)

