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 set集合类型操作总结
Nov 07 Python
python编写暴力破解FTP密码小工具
Nov 19 Python
Python实现生成简单的Makefile文件代码示例
Mar 10 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python二分查找详解
Sep 13 Python
详解 Python中LEGB和闭包及装饰器
Aug 03 Python
python调用外部程序的实操步骤
Mar 04 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
浅析python标准库中的glob
Mar 13 Python
Python包和模块的分发详细介绍
Jun 19 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
使用Pytorch搭建模型的步骤
Nov 16 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 数组二分法查找函数代码
2010/02/16 PHP
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
php用户密码加密算法分析【Discuz加密算法】
2016/10/12 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
带你了解session和cookie作用原理区别和用法
2017/08/14 Javascript
[js高手之路]设计模式系列课程-发布者,订阅者重构购物车的实例
2017/08/29 Javascript
JavaScript定义函数的三种实现方法
2017/09/23 Javascript
浅谈vue-router 路由传参的方法
2017/12/27 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
Node.JS用纯JavaScript生成图片或滑块式验证码功能
2019/09/12 Javascript
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
解读Python中degrees()方法的使用
2015/05/18 Python
python中的lambda表达式用法详解
2016/06/22 Python
Python 专题一 函数的基础知识
2017/03/16 Python
Python3.6实现带有简单界面的有道翻译小程序
2019/04/16 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
Python数据正态性检验实现过程
2020/04/18 Python
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
巡警年度自我鉴定
2014/02/21 职场文书
经典促销广告词大全
2014/03/19 职场文书
2014财产信托协议书范本
2014/11/18 职场文书
感谢信怎么写
2015/01/21 职场文书
李强为自己工作观后感
2015/06/11 职场文书
“5.12”护士节主持词
2015/07/04 职场文书