我报名参加金石计划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。