博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Image.open 以及 cv2.imread()的区别
阅读量:3903 次
发布时间:2019-05-23

本文共 691 字,大约阅读时间需要 2 分钟。

我们在进行数据处理的时候,经常会遇到这样的问题,我应该用什么来打开我的图片呢?接下来我们就来介绍一下常见的两种打开图片的方法,以及区别

1.  img = Image.open(path),这是PIL中的一个处理图片的函数,使用时需 from PIL import Image

  • 首先img的type,这里的img的类型是Image对象,不是普通的数组。
  • 其次,图像通道,我们都知道,一般图像由三通道构成分别是R、G、B。这里的img通道顺序即为RGB,因此在显示时往往会呈现不同的效果

2. img = cv2.imread(path),这是opencv中的处理图片的函数,使用时需 import cv2

  • 首先img的type,这里的img的type是np.adarray()类型
  • 其次,图像通道,这里的图像通道顺序为BGR

图像显示的时候有两种方式,plt.imshow(array) 和 cv2.imshow(array)。两个函数都要求输入为数组。因此Image读入的图片要转换为数组。plt函数读入的顺序为RGB,cv2.imshow()读入的顺序为BGR。因此Image与plt.imshow()配合使用。cv2自己的一套使用。

转换:

1.Image对象->cv2(np.adarray)

img = Image.open(path)

img_array = np.array(img)

2.cv2(np.adarray)->Image对象

img = cv2.imread(path)

img_Image = Image.fromarray(np.uint8(img))

转载地址:http://qmten.baihongyu.com/

你可能感兴趣的文章
168. Excel表列名称
查看>>
400. 第N个数字
查看>>
209. 长度最小的子数组
查看>>
145. 二叉树的后序遍历
查看>>
2. 两数相加
查看>>
3. 无重复字符的最长子串
查看>>
5. 最长回文子串
查看>>
4. 两个排序数组的中位数
查看>>
10. 正则表达式匹配
查看>>
23. 合并K个元素的有序链表
查看>>
32. 最长有效括号
查看>>
6. Z字形转换
查看>>
8. 字符串转整数(atoi)
查看>>
12. 整数转罗马数字
查看>>
15. 三数之和
查看>>
16. 最接近的三数之和
查看>>
18. 四数之和
查看>>
22. 括号生成
查看>>
24. 两两交换链表中的节点
查看>>
71. 简化路径
查看>>