欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Opencv和PIL.Image读取图片的区别

程序员文章站 2022-05-31 23:07:58
...

imshow

Opencv : cv2.imshow()采用BGR模式,通过cv2.imread()读取;
matplotlib.pyplot : plt.imshow() 采用RGB模式, 通过plt.imread()读取;
PIL.Image : img.show() 采用RGB模式, 通过Image.open()读取;img为图片对象
备注:通过cv2.VideoCapture方法来读取videoframe,得到的frame的通道顺序是BGR的!!!

下面一组图依次是:imgplt.imshow(cv_img)Img_img.show()plt.imshow(plt_img)
Opencv和PIL.Image读取图片的区别

Opencv和PIL.Image读取图片的区别
Opencv和PIL.Image读取图片的区别
Opencv和PIL.Image读取图片的区别

cv2(BGR)

# img为BGR通道
img = cv2.imread(img_path, mode)  # mode = [1, 0, -1]依次表示彩色、灰度、彩色+alpha, 默认为1;
cv2.imshow('test', img)
cv2.waitKey(0)                    # 保持图形界面,直到你在终端输入任意字符
cv2.destroyAllWindows()

PIL.Image(RGB)

img = Image.open(img_path)
img.show()

PIL.Image转Opencv

cv2_img = cv2.cvtColor(numpy.asarray(Img_img),cv2.COLOR_RGB2BGR)

Opencv转PIL.Image

pil_img = Image.fromarray(cv2.cvtColor(cv_img,cv2.COLOR_BGR2RGB))
相关标签: 计算机视觉