Pytorch读取图像的两种方式,你学会了吗?

631 阅读2分钟

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第2篇文章,点击查看活动详情

Pytorch读取图像的方式主要分为两种:一种为PIL读取图像;另一种为Opencv读取图像,下面分别对这两种方式进行一个演示和简单介绍。

方式一:PIL读取图像

Pillow 是 PIL 的替代版本,PIL 软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。但是我们会发现它会存在很多版本兼容的问题,因此使用它需要格外的小心。注意:PIL默认是RGB格式读取进来,因此在做处理时,需要关注这一点。

  • 安装依赖
pip install Pillow
  • 执行demo演示
from PIL import  Image
img_path = "./bus.jpg"
img = Image.open(img_path)
img.show()
方式一:Opencv读取图像

Opencv 是开源的计算机视觉和机器学习库,提供了C++、C以及python等接口,并支持Windows、Linux、Android、MacOS平台。OpenCV自1999年问世以来,就已经成为计算机视觉邻域学者和开发人员的首选工具。目前opencv出现的版本是4.x,也加入了很多新特性。注意:OpenCV默认读取图像是BGR模式。

  • 安装依赖
pip install python-opencv
  • 执行demo演示
import cv2
img = cv2.imread("./bus.jpg")
cv2.imshow("image", img)
cv2.waitKey()
cv2.destroyAllWindows()
Q&A环节

1、cv2.waitKey(): 表示设置窗口显示时间,“0”表示按任意键关闭

2、cv2.destroyAllWindows():关闭窗口。使用opencv的cv2进行图像视频相关操作的时候,经常会遇到运行了cv2.destroyAllWindows()之后窗口卡死或不能退出的case。遇到该问题尝试在cv2.destroyAllWindows()后方再重新显示一帧画面后即可自动退出。

3、cv2.imshow("image", img):展示图像,这一块我们可以写成一个通用的function。如:

def img_show(cls, name, img_data):
    cv2.imshow(name, img_data)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
总结

切记一点一定要注意两种方式读取图像的模式。PIL是RGB,Opencv是BGR。