PIL.Image.open和cv2.imread的比较与相互转换的方法


Posted in Python onJune 03, 2020

摘要

PIL.Image.open读入的是RGB顺序,而opencv中cv2.imread读入的是BGR通道顺序 。cv2.imread会显示图片更蓝一些。

cv2.imread(path,读取方式)方法

第一个参数是图片的路径。

第二个参数是读取方式:cv2.IMREAD_COLOR:读入一副彩色图片;cv2.IMREAD_GRAYSCALE:以灰度模式读入图片;cv2.IMREAD_UNCHANGED:读入一幅图片,并包括其alpha通道。

默认为cv2.IMREAD_COLOR。

返回值是(height,width,channel)数组,channel的顺序是BGR顺序。

例:

import cv2
from PIL import Image
imagePath='4.jpg'
import matplotlib.pyplot as plt
cvImage=cv2.imread(imagePath)
print(cvImage.shape)
plt.subplot(121)
plt.imshow(cvImage)
plt.show()

PIL.Image.open和cv2.imread的比较与相互转换的方法

PIL.Image.open(path)方法

参数:图片的路径

返回值: <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=374x288 at 0x13EA15F7808>

需要用img=np.array(img)做转换,才能看到shape属性,是(height,width,channel)数组,channel的通道顺序为RGB。

例:

from PIL import Image

import numpy as np

imagePath='4.jpg'

import matplotlib.pyplot as plt

'''

cvImage=cv2.imread(imagePath)

print(cvImage.shape)

plt.subplot(121)

plt.imshow(cvImage)

plt.show()

'''

img=Image.open(imagePath)

img=np.array(img)

print(img.shape)

plt.imshow(img)

plt.show()

PIL.Image.open和cv2.imread的比较与相互转换的方法

二者之间的相互转化

主要用到的函数cv2.cvtColor(p1,p2) 是颜色空间转换函数,p1是需要转换的图片,p2是转换成何种格式。

本例用到的格式是cv2.COLOR_RGB2BGR和cv2.COLOR_BGR2RGB

代码:

def PILImageToCV(imagePath):
    # PIL Image转换成OpenCV格式
    img = Image.open(imagePath)
    plt.imshow(img)
    img = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
    plt.imshow(img)
    plt.show()

def CVImageToPIL(imagePath):
    # OpenCV图片转换为PIL image
    img = cv2.imread(imagePath)
    plt.imshow(img)
    img2 = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    plt.imshow(img2)
    plt.show()

判断图像数据是否是OpenCV格式:

isinstance(img, np.ndarray)

到此这篇关于PIL.Image.open和cv2.imread的比较与相互转换的方法的文章就介绍到这了,更多相关PIL.Image.open和cv2.imread内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python函数中*args和**kwargs来传递变长参数的用法
Jan 26 Python
Pycharm 实现下一个文件引用另外一个文件的方法
Jan 17 Python
python自动化之Ansible的安装教程
Jun 13 Python
python中时间、日期、时间戳的转换的实现方法
Jul 06 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
Python @property原理解析和用法实例
Feb 11 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 Python
浅谈keras使用中val_acc和acc值不同步的思考
Jun 18 Python
python 贪心算法的实现
Sep 18 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 Python
Python中 range | np.arange | np.linspace三者的区别
Mar 22 Python
Python3创建Django项目的几种方法(3种)
Jun 03 #Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 #Python
使用python实现时间序列白噪声检验方式
Jun 03 #Python
部署Django到阿里云服务器教程示例
Jun 03 #Python
Python flask路由间传递变量实例详解
Jun 03 #Python
django的autoreload机制实现
Jun 03 #Python
浅谈python量化 双均线策略(金叉死叉)
Jun 03 #Python
You might like
PHP 变量类型的强制转换
2009/10/23 PHP
php安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
2016/08/18 Javascript
javascript中call,apply,bind函数用法示例
2016/12/19 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
2017/06/12 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
JS实现旋转木马轮播图
2020/01/01 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
python下如何让web元素的生成更简单的分析
2008/07/17 Python
分分钟入门python语言
2018/03/20 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
介绍一下.NET构架下remoting和webservice
2014/05/08 面试题
小学教师的自我评价范例
2013/10/31 职场文书
小学生暑假感言
2014/02/06 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
表决心的诗句大全
2014/03/11 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
六一儿童节活动总结
2014/08/27 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
大学体育课感想
2015/08/10 职场文书
员工升职自我评价
2019/03/26 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP
MySQL数据库表约束讲解
2022/06/21 MySQL