详解OpenCV和PIL读取和显示图像的差异
本博客演示使用OpenCV和PIL读取和显示图像的差异。
首先来看一下原始的bgr图像 src.jpg
1. 使用cv2读取src.jpg并转为rgb格式的src_rgb.jpg并显示和保存
#首先读入并保存为rgb图像src_path = 'C://Users//Administrator//Desktop//cv2_PIL//src.png' # bgrimg = cv2.imread(src_path)img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)cv2.imshow('src_rgb.png', img)cv2.imwrite('src_rgb.png', img)cv2.waitKey(5000)
2. 使用cv2读取src_rgb.jpg并显示, 发现仍为rgb格式
# 读入rgb格式的图像并保存src_path = 'C://Users//Administrator//Desktop//cv2_PIL//src_rgb.png' # rgbimg = cv2.imread(src_path)cv2.imshow('src_rgb.png', img)cv2.waitKey(5000)
由此可见cv2读取bgr格式图片为bgr格式读入;读取rgb格式图片为rgb格式读入。
3. 使用PIL读取src.jpg并显示
# 使用PIL读取bgr格式图片并显示src_path = 'C://Users//Administrator//Desktop//cv2_PIL//src.png' # bgrimg = Image.open(src_path)#.convert("RGB")print(img.mode)img.show("src.png")
由此可见PIL读入bgr格式图片为读入后是rgb格式
4. 使用PIL读取src.jpg并转为numpy的array格式图片并显示
# 使用PIL读取bgr格式图片并显示src_path = 'C://Users//Administrator//Desktop//cv2_PIL//src.png' # bgrimg = Image.open(src_path)#.convert("RGB")print(img.mode)img = np.array(img) # rgbcv2.imshow("src.png",img)cv2.waitKey(5000)
所以进一步坐实了PIL读入bgr格式图片为读入后是rgb格式
5. 使用PIL读取rgb格式src_rgb.jpg并显示
# 使用PIL读取rgb格式图片并显示src_path = 'C://Users//Administrator//Desktop//cv2_PIL//src_rgb.png' # rgbimg = Image.open(src_path)#.convert("RGB")print(img.mode)# img1 = img.load()# print(img1[0,0])#img.show()img = np.asarray(img) # bgr#print(img)cv2.imshow("src_.png",img)cv2.waitKey(5000)
可见PIL读入rgb顺序图片后虽然为RGB格式,但是其实通道顺序为BGR格式图片
总结:
cv2读取BGR图片 | img = cv2.imread('src.png'),其中img为BGR通道顺序的图片 |
cv2读取RGB图片 | img = cv2.imread('src.png'),其中img为RGB通道顺序的图片 |
PIL读入BGR图片 | img = Image.open('src.png'),显示img为RGBA格式,其中img为RGBA通道顺序的图片; img = img.convert('RGB')后,img为RGBA通道顺序的图片 |
PIL读入RGB图片 | img = Image.open('src_rgb.png'),虽然显示img为RGB格式,但是img为通道顺序为BGR格式的图片。 |
到此这篇关于详解OpenCV和PIL读取和显示图像的差异的文章就介绍到这了,更多相关OpenCV和PIL读取和显示图像 内容请搜索 以前的文章或继续浏览下面的相关文章希望大家以后多多支持 !
最后更新于 2021-11-08 08:13:18 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章
- 虚拟机中怎么安装win10预览版9901 win10预览版9901虚拟机安装图文教程
- 加厚保鲜袋家用食品级点断式经济装塑料袋商用大号超市专用连卷袋
- Python爬虫自动化爬取b站实时弹幕实例方法
- 让你一步步学会如何重装XP系统[图文详解]
- Html5实现单张、多张图片上传功能