skimage.io.imread(), Image.open() 以及 cv2.imread()的区别
我们在进行数据处理的时候,经常会遇到这样的问题,我应该用什么来打开我的图片呢?接下来我们就来介绍一下常见的两种打开图片的方法,以及区别
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()的区别相关推荐
- 【OpenCV 例程200篇】01. 图像的读取(cv2.imread)
[OpenCV 例程200篇]01. 图像的读取(cv2.imread) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新 ...
- 【OpenCV 例程300篇】01. 图像的读取(cv2.imread)
专栏地址:『youcans 的 OpenCV 例程300篇 - 总目录』 01. 图像的读取(cv2.imread) 02. 图像的保存(cv2.imwrite) 03. 图像的显示(cv2.imsh ...
- 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:默 ...
- skimage.io.imread vs caffe.io.load_image
这两周在跑一个模型,我真的是被折腾的要崩溃了. 最后原因就是数据类型的问题,你说是不是应该管小黑屋啊. skimage.io.imread得到的是uint8的数据,而caffe.io.load_ima ...
- cv2.imread()和cv2.cvtColor() 的使用
1.cv2.imread()接口读图像,读进来直接是BGR 格式数据格式在 0~255 需要特别注意的是图片读出来的格式是BGR,不是我们最常见的RGB格式,颜色肯定有区别. 2.cv2.cvtCol ...
- opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。
opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径 定义函数: cv2_imread(path)代替cv2.imread() cv2_im ...
- cv2.imread 中文路径返回null
经过测试,发现cv2.imread读取图片,路径中有中文,则返回null cv2.imread 中文路径返回null 这个方法还没试: file = askopenfilename() im2 = c ...
- Python:cv2.imread读入图片后返回NoneType的解决方案
cv2.imread读入图片后返回NoneType的解决方案 这里用的是Spyder 重点 如果文件和图片不在一个文件夹下,工作目录也不一致,按照上面代码也会输出NoneType,这时需要把路径写好: ...
- OpenCV——cv2.imread()无法读取中文路径的文件解决方案
解决方案 方法一: ## 读取图像,解决imread不能读取中文路径的问题 def cv_imread(filePath):# 核心就是下面这句,一般直接用这句就行,直接把图片转为mat数据cv_im ...
最新文章
- centos 7 安装GTK+-2.0
- jQuery.validate使用必备
- IDEA运行第一个Spring Boot应用程序
- 【PAT乙级】1070 结绳 (25 分)
- C++实现topological sort拓扑排序算法(附完整源码)
- kali mysql停止服务器_第 2 篇 MySQL 安装
- 配置window下python3环境
- error in static/js/xxx.js from UglifyJs Unpected token: punc() [static/js/xxx.js]
- 输入任意两个两位的自然数,输出它们完整的乘法竖式。
- Understanding glibc malloc - ptmalloc
- Java基础学习总结(86)——Java异常处理机制Exception抛出异常时throw和throws用法详解
- FlashCache初探(一)
- 过年用计算机弹奏,过年实用,你可能需要的亲戚称呼计算器
- Destroy与DestroyImmediate以及引发的bug
- Bithumb Global AMA丨Cred加速实现开放金融——打造区块链上蚂蚁金服
- mapminmax函数
- CFSSL 生成证书
- vue移动端获取定位_关于关于vue移动端经纬度定位以及POI检索周边小区
- [iPhone8] 苹果承认硬件缺陷
- id nfc模拟_NFC手机伪造门禁卡和模拟门禁卡教程
热门文章
- 【10】48. Rotate Image
- 软件登录界面设计分享
- Windows中动态磁盘管理
- 【python数据挖掘课程】二十二.Basemap地图包安装入门及基础知识讲解
- C语言API编写窗体界面和按钮
- LeetCode Algorithm 589. N 叉树的前序遍历
- 1.4 第一个Python程序
- 【C/C++10】天气APP:MySQL/PostgreSQL,环境变量/动静态库,Linux/Oracle字符集
- ubuntu16.04+anaconda3+python3.6安装OpenCV3
- openmv串口数据 串口助手_Qt小项目之串口助手控制LED