PIL.Image.open和cv2.imread的比较与相互转换的方法
作者:神码堂 时间:2021-05-06 22:09:38
摘要
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(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()
二者之间的相互转化
主要用到的函数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)
来源:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/106470446
标签:PIL.Image.open,cv2.imread
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python技巧之四种多线程应用分享
2021-12-04 12:11:57
一篇文章带你了解python标准库--sys模块
2022-04-25 10:21:37
认识MySQL数据库对服务器端光标的限制
2009-03-25 17:35:00
python里 super类的工作原理详解
2022-06-13 23:54:14
Flask wtforms实现表单验证使用
2021-12-16 05:04:27
asp使用 sql_dmo 添加新数据库代码
2010-03-17 20:57:00
python实现音乐播放和下载小程序功能
2023-07-03 17:59:03
![](https://img.aspxhome.com/file/2023/5/105855_0s.jpg)
Python中非常好用的内置函数详解
2023-04-05 06:28:25
![](https://img.aspxhome.com/file/2023/0/70080_0s.png)
centos6.7安装python2.7.11的具体方法
2022-04-29 00:42:54
python 提取html文本的方法
2021-05-27 03:43:46
Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法
2009-10-14 11:37:00
谈点关于checkbox的事情
2010-09-28 14:49:00
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2022-10-26 01:44:22
![](https://img.aspxhome.com/file/2023/8/110278_0s.png)
python基于tkinter点击按钮实现图片的切换
2022-03-18 10:22:31
![](https://img.aspxhome.com/file/2023/8/99698_0s.png)
设计师的职业规划
2009-08-31 12:52:00
php获取文章内容第一张图片的方法示例
2023-11-09 18:55:14
(X)HTML Strict 下的嵌套规则
2008-03-08 18:39:00
![](https://img.aspxhome.com/file/UploadPic/20071/200713110533913s.gif)
OpenCV物体跟踪树莓派视觉小车实现过程学习
2021-09-15 21:55:48
![](https://img.aspxhome.com/file/2023/5/91995_0s.jpg)
Python psutil模块简单使用实例
2023-08-10 21:15:37
我喜欢你 抖音表白程序python版
2023-06-11 12:54:17