OpenCV保存webp格式图片体积为同分辨率jpg的3倍,该如何配置参数?
问题原因
- OpenCV不同图片格式的默认压缩参数不匹配是核心诱因:JPEG格式默认压缩质量为95,WebP格式的默认质量参数在多数OpenCV版本中更高(部分版本默认值接近100,优先级偏向保画质而非压缩),两者质量基准不一致,自然不符合“WebP比同画质JPG小25%”的官方结论。
- 官方测试结论的前提是两者画质对齐,你当前的测试场景相当于用接近无损的WebP和中高画质的JPG对比体积,结果出现偏差属于正常情况。
- 补充你测试的PNG为无损压缩格式,800×600分辨率下500KiB的体积符合常规表现,无异常。
配置方案
需要手动指定WebP的保存参数来对齐画质,参数通过cv2.imwrite的第三个参数传入即可:
- 有损WebP压缩示例(和默认JPG画质相当,体积可缩小25%以上):
# 质量取值范围0-100,75-85区间即可匹配默认JPG的观感,可根据需求调整 cv2.imwrite("myfile.webp", cv2image, [int(cv2.IMWRITE_WEBP_QUALITY), 80])
- 无损WebP压缩示例(适合需要保留全画质的场景,体积比PNG小30%左右):
cv2.imwrite("myfile_lossless.webp", cv2image, [int(cv2.IMWRITE_WEBP_QUALITY), 100, int(cv2.IMWRITE_WEBP_LOSSLESS), 1])
- 如果需要调整JPG的压缩质量,也可通过对应参数控制:
# 取值范围0-100,数值越高画质越好体积越大 cv2.imwrite("myfile.jpg", cv2image, [int(cv2.IMWRITE_JPEG_QUALITY), 90])
内容的提问来源于stack exchange,提问作者kipkipe
相关产品推荐
相关产品推荐

