大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
本示例使用的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] )
第一个参数 filename,要保存图片的文件名称。
第二个参数 img,输入图像数据。
(可选)第三个参数 params,设置编码格式特定参数(paramId_1,paramValue_1,paramId_2,paramValue_2,…),可以用的params列表请参考cv:: ImwriteFlags https://docs.opencv.org/4.1.1/d4/da8/group__imgcodecs.html#ga292d81be8d76901bff7988d18d2b42ac
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/209940.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...