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中apply函数的用法实例教程
Jul 31 Python
Python XML RPC服务器端和客户端实例
Nov 22 Python
在ironpython中利用装饰器执行SQL操作的例子
May 02 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
Python爬虫实现网页信息抓取功能示例【URL与正则模块】
May 18 Python
python下实现二叉堆以及堆排序的示例
Sep 29 Python
python抽取指定url页面的title方法
May 11 Python
python 检查是否为中文字符串的方法
Dec 28 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
Oct 04 Python
Python3安装pip工具的详细步骤
Oct 14 Python
关于Numpy之repeat、tile的用法总结
Jun 02 Python
opencv用VS2013调试时用Image Watch插件查看图片
Jul 26 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生成的一个树叶图片画图例子
2014/04/16 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
PHP6新特性分析
2016/03/03 PHP
PHP htmlentities()函数用法讲解
2019/02/25 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
JQuery设置和去除disabled属性的5种方法总结
2013/05/16 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
js中作用域的实例解析
2017/03/16 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
基于nodejs res.end和res.send的区别
2018/05/14 NodeJs
Element Input组件分析小结
2018/10/11 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
详解python3实现的web端json通信协议
2016/12/29 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
python的debug实用工具 pdb详解
2019/07/12 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
pytorch简介
2020/11/11 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
美国在线家装零售商:Build.com
2016/09/02 全球购物
软件缺陷的分类都有哪些
2014/08/22 面试题
年终晚会主持词
2014/03/25 职场文书
《放小鸟》教学反思
2014/04/20 职场文书
家长会标语
2014/06/24 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
python爬取某网站原图作为壁纸
2021/06/02 Python