opencv、pillow和matplotlib的区别

本文对比了Python中的OpenCV、Pillow和Matplotlib在处理图片时的特性,包括文件名支持、数据结构、显示方式、性能和转换方法,有助于选择适合的库进行图像操作。

考文章:Python学习小技巧——opencv、pillow和matplotlib的区别_pillow和opencv区别-优快云博客

1 概念的比较:

opencv
(1)默认不支持中文文件名
(2)数据为numpy,维度:高,宽,通道数,通道序:BGR
(3)显示完后要cv2.destroyAllWindows()
(4)读取图片时与pillow速度差不多

pillow
(1)python原生支持最好,各种操作都很方便,pytorch内部使用的就是pillow
(2)读入的是一个Image类,size的顺序:宽,高,通道序RGB
(3)保存图片时比opencv
(4)在大量图片数据读写时可以优先考虑pillow

matplotlib
(1)读入数据格式最为便准,numpy格式,维度:高,宽,通道数,通道序:RGB
(2)交互模式中只要用plt.imshow()就直接显示图片了,脚本模式中要多加一句plt.show()
(3)opencv转matplotlib时rgb_img = cv2.cvtColor(cv_img, cv2.COLOR_BGR2RGB)
(4)可以制作坐标图
 

英文可以用OpenCV直接在画面上显示,中文需要Pillow去写字

2 OpenCV处理图片

opencv读、写以及展示图片等操作
import cv2

# opencv读、写以及展示图片等操作
image = cv2.imread(r"000000.jpg")                            # 读取图片
cv2.namedWindow('img1', cv2.WINDOW_NORMAL)                   # 建立名为img的窗口
cv2.imshow('img1', image)                                    # 在ing窗口展示图片
cv2.waitKey(2000)                                            # 2s后自动销毁
cv2.imwrite(r"1.png", image)                                 # 写入图片
GrayImage = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)          # 灰度化
cv2.namedWindow('img2', cv2.WINDOW_NORMAL)
cv2.imshow('img2', GrayImage)
cv2.waitKey(2000)  
cv2.destroyAllWindows()                                      # 关闭全部窗口
cv2.imwrite(r"2.png", GrayImage)

输出结果如图示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值