python opencv、matplotlib、PIL图像处理库之间的区别、联系、以及互相转换

本文介绍了Python中opencv、PIL和matplotlib三个图像处理库的区别和联系。opencv功能强大,适合图像处理,但不支持读取gif;PIL兼容性好,格式丰富;matplotlib主要用于绘图,不包含图像处理算法。它们之间的互相转换通常需要通过保存再读取的方式完成。在处理数据集时,常采用opencv预处理,matplotlib展示,PIL保存,最后转换为pytorch tensor的策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. opencv
a. 读取图像:
img = cv.imread(path)
opencv库使用imread读取得到的默认是一个BGR模式的彩色图像,可以使用cv.cvtColor(img, cv.COLOR_BGR2RGB)将颜色模式转化成RGB。opencv的基本图像类型与numpy数组可以互相转化。因此可以直接调用torch.from_numpy(img)将图像转成tensor。
b. 保存图像:
cv.imwrite(path, img)
c. 绘制图像:
cv.imshow(name, img)
opencv的绘制图像操作会将图像以窗口的形式显示在屏幕上,因此需要手动执行中断命令来关闭窗口进程。一般会用到:
k = cv.waitKey(0) & 0xFF
if k == 27:
cv.destroyAllWindows()
优点:对图像处理的接口丰富,集成了许多常用的图像处理操作:阈值、边缘检测、角点检测、图像滤波、形态学处理、傅里叶变换、直方图均衡、模板匹配、运动检测(meanshift),并且支持人脸部位识别。
缺陷:opencv在读取图像时,若path错误,仅会返回None,而不会报错,并且opencv不支持使用imread对gif格式的图像进行读取,若要读取gif格式的图像,需要使用gif = cv.VideoCapture(path)得到一个opencv的视频对象,然后使用ret,frame 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值