主页 > 知识库 > 详解OpenCV和PIL读取和显示图像的差异

详解OpenCV和PIL读取和显示图像的差异

热门标签:地图标注的意义点 地图标注微信发送位置不显示 地图制图标注位置改变是移位吗 上海机器人外呼系统哪家好 315电话机器人广告 房产电销外呼系统 浙江电销卡外呼系统好用吗 南京销售外呼系统软件 盖州市地图标注

本博客演示使用OpenCV和PIL读取和显示图像的差异。

首先来看一下原始的bgr图像 src.jpg

1. 使用cv2读取src.jpg并转为rgb格式的src_rgb.jpg并显示和保存

#首先读入并保存为rgb图像
src_path = 'C:\\Users\\Administrator\\Desktop\\cv2_PIL\\src.png' # bgr
img = 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' # rgb
img = 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' # bgr
img = 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' # bgr
img = Image.open(src_path)#.convert("RGB")
print(img.mode)
img = np.array(img) # rgb
cv2.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' # rgb
img = 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读取和显示图像 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • python读取并显示图片的三种方法(opencv、matplotlib、PIL库)

标签:赤峰 贵州 克拉玛依 金华 日照 双鸭山 临汾 阳泉

巨人网络通讯声明:本文标题《详解OpenCV和PIL读取和显示图像的差异》,本文关键词  详解,OpenCV,和,PIL,读取,显示,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《详解OpenCV和PIL读取和显示图像的差异》相关的同类信息!
  • 本页收集关于详解OpenCV和PIL读取和显示图像的差异的相关信息资讯供网民参考!
  • 推荐文章