• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-07) 47次浏览 已收录 0个评论

这篇文章主要介绍了PIL.Image.open和cv2.imread的比较与相互转换的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

摘要

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-600' import matplotlib.pyplot as plt cvImage=cv2.imread(imagePath) print(cvImage.shape) plt.subplot(121) plt.imshow(cvImage) plt.show()

PIL.Image.open(path)方法

参数:图片的路径

返回值:

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

例:

 from PIL import Image import numpy as np imagePath='4.jpg-600' 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) 

到此这篇关于PIL.Image.open和cv2.imread的比较与相互转换的方法的文章就介绍到这了,更多相关PIL.Image.open和cv2.imread内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaoda来源gaodai#ma#com搞*!代#%^码$网ima搞代码网

以上就是PIL.Image.open和cv2.imread的比较与相互转换的方法的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PIL.Image.open和cv2.imread的比较与相互转换的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址