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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
用pywin32实现windows模拟鼠标及键盘动作
Apr 22 Python
Python写的英文字符大小写转换代码示例
Mar 06 Python
python制作花瓣网美女图片爬虫
Oct 28 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
Jul 17 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 Python
解决pycharm remote deployment 配置的问题
Jun 27 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
详解Python flask的前后端交互
Mar 31 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
WordPress自定义时间显示格式
2015/03/27 PHP
php eval函数一句话木马代码
2015/05/21 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
分享PHP-pcntl 实现多进程代码
2016/09/30 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
一个奇葩的最短的 IE 版本判断JS脚本
2014/05/28 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
vue服务端渲染缓存应用详解
2018/09/12 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
python中global用法实例分析
2015/04/30 Python
python利用datetime模块计算时间差
2015/08/04 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
Python内置加密模块用法解析
2019/11/25 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
python实现图片转字符画的完整代码
2021/02/21 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
医校毕业生自我鉴定
2014/01/25 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
公司总经理任命书
2014/06/05 职场文书
先进党支部事迹材料
2014/12/24 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
Unicode中的CJK(中日韩统一表意文字)字符小结
2021/12/06 HTML / CSS
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis