为何相同图片使用PIL和CV2保存为PNG格式时文件大小差距明显
PNG文件大小差异原因
二者的本质差异是PNG格式默认压缩配置不同,均为无损压缩,不会影响图像内容:
- PIL的
Image.save()保存PNG时默认压缩等级为6(压缩等级范围0-9,数值越大压缩率越高、耗时越长),且默认开启压缩优化,会扫描图像数据匹配最优压缩参数,最终输出文件更小。 - OpenCV的
cv2.imwrite()保存PNG时默认压缩等级仅为3,且默认没有开启额外的压缩优化步骤,压缩率更低,所以输出文件更大。
你可以手动调整OpenCV的PNG压缩参数,即可获得和PIL大小相近的文件:
# 设置PNG压缩等级为9(最高无损压缩) cv2.imwrite('2.png', c_image, [cv2.IMWRITE_PNG_COMPRESSION, 9])
内容的提问来源于stack exchange,提问作者Da Da
相关产品推荐
相关产品推荐

