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

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

  • 首先img的type,这里的img的类型是Image对象,不是普通的数组。
  • 其次,图像通道,我们都知道,一般图像由三通道构成分别是R、G、B。这里的img通道顺序即为RGB,因此在显示时往往会呈现不同的效果,如果图像为RGBA格式(这里的A表示透明度),则使用Image方法读入的是4通道的数据,cv2.imread不具备这种能力。

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

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

2. img = skimage.io.imread(path),这是skimage包中的读入图片的函数,使用时需 import skimage

  • 首先img的type,这里的img的type也是np.adarray()类型
  • 其次,图像通道,这里的图像通道顺序为RGB,如果图像是RGBA格式的话,读入的也是一个4通道的数据

图像显示的时候有两种方式,plt.imshow(array) 和 cv2.imshow(array)。两个函数都要求输入为数组。因此Image读入的图片要转换为数组。plt函数读入的顺序为RGB,cv2.imshow()读入的顺序为BGR。因此Image与plt.imshow()配合使用。cv2自己的一套使用,skimage读入的数据在显示时两种方法都可以使用,但是使用cv2.imshow时要将前两个通道进行调换

转换:

1.Image对象->np.adarray

img = Image.open(path)

img_array = np.array(img)

2.np.adarray->Image对象

img = cv2.imread(path)

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

skimage.io.imread(), Image.open() 以及 cv2.imread()的区别相关推荐

  1. 【OpenCV 例程200篇】01. 图像的读取(cv2.imread)

    [OpenCV 例程200篇]01. 图像的读取(cv2.imread) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新 ...

  2. 【OpenCV 例程300篇】01. 图像的读取(cv2.imread)

    专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imsh ...

  3. cv2.imread(filename, 0)和先img=cv2.imread(filename, 1)再cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)得出灰度图区别

    函数cv2.imread(filepath, flags), 其中filename为读入image的路径,flags为标志位. flags有以下几种参数可供选择: cv2.IMREAD_COLOR:默 ...

  4. skimage.io.imread vs caffe.io.load_image

    这两周在跑一个模型,我真的是被折腾的要崩溃了. 最后原因就是数据类型的问题,你说是不是应该管小黑屋啊. skimage.io.imread得到的是uint8的数据,而caffe.io.load_ima ...

  5. cv2.imread()和cv2.cvtColor() 的使用

    1.cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255 需要特别注意的是图片读出来的格式是BGR,不是我们最常见的RGB格式,颜色肯定有区别. 2.cv2.cvtCol ...

  6. opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。

    opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径 定义函数: cv2_imread(path)代替cv2.imread() cv2_im ...

  7. cv2.imread 中文路径返回null

    经过测试,发现cv2.imread读取图片,路径中有中文,则返回null cv2.imread 中文路径返回null 这个方法还没试: file = askopenfilename() im2 = c ...

  8. Python:cv2.imread读入图片后返回NoneType的解决方案

    cv2.imread读入图片后返回NoneType的解决方案 这里用的是Spyder 重点 如果文件和图片不在一个文件夹下,工作目录也不一致,按照上面代码也会输出NoneType,这时需要把路径写好: ...

  9. OpenCV——cv2.imread()无法读取中文路径的文件解决方案

    解决方案 方法一: ## 读取图像,解决imread不能读取中文路径的问题 def cv_imread(filePath):# 核心就是下面这句,一般直接用这句就行,直接把图片转为mat数据cv_im ...

最新文章

  1. centos 7 安装GTK+-2.0
  2. jQuery.validate使用必备
  3. IDEA运行第一个Spring Boot应用程序
  4. 【PAT乙级】1070 结绳 (25 分)
  5. C++实现topological sort拓扑排序算法(附完整源码)
  6. kali mysql停止服务器_第 2 篇 MySQL 安装
  7. 配置window下python3环境
  8. error in static/js/xxx.js from UglifyJs Unpected token: punc() [static/js/xxx.js]
  9. 输入任意两个两位的自然数,输出它们完整的乘法竖式。
  10. Understanding glibc malloc - ptmalloc
  11. Java基础学习总结(86)——Java异常处理机制Exception抛出异常时throw和throws用法详解
  12. FlashCache初探(一)
  13. 过年用计算机弹奏,过年实用,你可能需要的亲戚称呼计算器
  14. Destroy与DestroyImmediate以及引发的bug
  15. Bithumb Global AMA丨Cred加速实现开放金融——打造区块链上蚂蚁金服
  16. mapminmax函数
  17. CFSSL 生成证书
  18. vue移动端获取定位_关于关于vue移动端经纬度定位以及POI检索周边小区
  19. [iPhone8] 苹果承认硬件缺陷
  20. id nfc模拟_NFC手机伪造门禁卡和模拟门禁卡教程

热门文章

  1. 【10】48. Rotate Image
  2. 软件登录界面设计分享
  3. Windows中动态磁盘管理
  4. 【python数据挖掘课程】二十二.Basemap地图包安装入门及基础知识讲解
  5. C语言API编写窗体界面和按钮
  6. LeetCode Algorithm 589. N 叉树的前序遍历
  7. 1.4 第一个Python程序
  8. 【C/C++10】天气APP:MySQL/PostgreSQL,环境变量/动静态库,Linux/Oracle字符集
  9. ubuntu16.04+anaconda3+python3.6安装OpenCV3
  10. openmv串口数据 串口助手_Qt小项目之串口助手控制LED