全国客服热线:4009929931
电子邮箱:info@dashen-tech.com
联系地址:
广州天河区沙太路85号金企科技园A302

OpenCV Python 保存图片

OpenCV Python 保存图片
9月 6, 2019 admin

本示例使用的OpenCV版本是:4.1.1
运行Python的编辑器:Jupyter notebook

示例目的

通过无损和有损的方式进行图片保存。


实现代码

1,加载图片

import cv2    # 加载OpenCV

img = cv2.imread("dashen.jpeg")    # 读取/加载 图片

2,把图片保存为PNG格式

使用无损的方式保存成PNG格式

cv2.imwrite('dashen_compressed.png', img, [cv2.IMWRITE_PNG_COMPRESSION, 0])

运行完以上代码,在工作目录下会多出一个文件dashen_compressed.png。

我们对此文件进行对比,判断该文件与img的数据是否一样,从而判断是否有损失。

我们在cv.imwrite()的第三个参数中设置了PNG的编码方式保存图片,并设置了0值,此值在PNG格式中取值范围是0-9,0就是无损,9就是最高程度的压缩。

img_png = cv2.imread("dashen_compressed.png")    # 读取/加载 图片
assert img_png.all() == img.all()  # 对比两个图像数据是否一样,如果不一样就会出错

2,把图片保存为JPEG格式

使用压缩的方法保存为JPEG

cv2.imwrite('dashen_compressed.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 0])

运行完以上代码,在工作目录下会多出一个文件dashen_compressed.png。
从文件大小的角度,与原图相比小了很多。
打开该文件与原图相比,也可以看出图片损失了很多数据。

我们在cv.imwrite()的第三个参数中设置了JPEG的编码方式保存图片,并设置了0值,此值在JPEG格式中取值范围是0-100,数值越高,保存的质量就越高。

程序说明

本示例主要认识cv.imwrite()的作用,可以通过设置有损或者无损的方式保存图片。

cv.imwrite()语法

retval = cv.imwrite( filename, img[, params] )

详细的cv.imwrite()请参考:
https://docs.opencv.org/4.1.1/d4/da8/group__imgcodecs.html#gabbc7ef1aa2edfaa87772f1202d67e0ce

0 Comments

Leave a reply

您的电子邮箱地址不会被公开。