matplotlib、PIL、cv2图像操作差异分析
2017-09-30 15:09
483 查看
用python进行图像处理中分别用到过matplotlib.pyplot、PIL、cv2三种库,这三种库图像读取和保存方法各异,并且图像读
9560
取时顺序也有差异,如plt.imread和PIL.Image.open读入的都是RGB顺序,而cv2.imread读入的是BGR顺序。使用时需要倍加注意。
现参考http://www.jianshu.com/p/3977d674da85。对这三种库图像读取保存进行梳理。与原参考资源有一定差异。当前使用为python3.5版本。
读取图像
1.matplotlib.pyplot
matplotlib读取进来的图片是unit8,0-255范围。
2.PIL.image.open
PIL是有自己的数据结构的,但是可以转换成numpy数组,转换后的数组为unit8,0-255
3.cv2.imread
opencv读进来的是numpy数组,类型是uint8,0-255。
4.plt.imread和PIL.Image.open读入的都是RGB顺序,而cv2.imread读入的是BGR顺序。使用时需要倍加注意。
显示图像
均用plt.imshow(img):因为opencv读取进来的是bgr顺序呢的,而imshow需要的是rgb顺序,因此需要先反过来plt.imshow(img[...,
-1::-1])。
保存图像
1 PIL.image - 保存PIL格式的图片
img.save("1.jpg")
2.cv2.imwrite - 保存numpy格式的图片
cv2.imwrite("1.jpg")
9560
取时顺序也有差异,如plt.imread和PIL.Image.open读入的都是RGB顺序,而cv2.imread读入的是BGR顺序。使用时需要倍加注意。
现参考http://www.jianshu.com/p/3977d674da85。对这三种库图像读取保存进行梳理。与原参考资源有一定差异。当前使用为python3.5版本。
读取图像
1.matplotlib.pyplot
matplotlib读取进来的图片是unit8,0-255范围。
2.PIL.image.open
PIL是有自己的数据结构的,但是可以转换成numpy数组,转换后的数组为unit8,0-255
3.cv2.imread
opencv读进来的是numpy数组,类型是uint8,0-255。
4.plt.imread和PIL.Image.open读入的都是RGB顺序,而cv2.imread读入的是BGR顺序。使用时需要倍加注意。
显示图像
均用plt.imshow(img):因为opencv读取进来的是bgr顺序呢的,而imshow需要的是rgb顺序,因此需要先反过来plt.imshow(img[...,
-1::-1])。
保存图像
1 PIL.image - 保存PIL格式的图片
img.save("1.jpg")
2.cv2.imwrite - 保存numpy格式的图片
cv2.imwrite("1.jpg")
相关文章推荐
- Python数据可视化图像库MatPlotLib基本图像操作
- 【基本图像操作】Matplotlib
- 用Python的Matplotlib模块进行基本的图像操作
- matplotlib--python绘制图表 | PIL--python图像处理
- python数据分析复盘——数据分析相关库之Matplotlib
- 数据分析之Matplotlib绘图-01
- Python数据分析——Matplotlib
- 对图像组成不了解?这样学习Matplotlib必走弯路!
- Python数据分析与挖掘实战(Pandas,Matplotlib常用方法)
- 在Ubuntu14.04和Python3.4-3.6环境中,matplotlib不显示图像的问题的解决方法
- Python中matplotlib图像里的中文输出问题
- Matplotlib 中文用户指南 3.2 图像教程
- Matplotlib 三维图像 入门
- 使用matplotlib时pyplot.show()不显示图像的问题
- python实现Kmeans文本聚类,通过PCA降维和Matplotlib显示聚类3d三维图像
- matplotlib绘图的基本操作
- matplotlib命令与格式:图像(figure)与子区域(axes)布局与规划
- 演示如何实现Matplotlib绘图并保存图像但不显示图形的方法
- python学习笔记(1)之如何在python3.x下安装PIL、numpy以及matplotlib