【发布时间】:2015-01-30 12:35:03
【问题描述】:
我使用了OpenCV for Python的函数imwrite将一组图像从PNG转换为JPEG格式,没有指定质量(默认值为95),所以我得到了一个第一组JPEG 图像。
然后我使用相同的函数将同一组图像从 PNG 转换为 JPEG 格式,将质量值指定为 75,因此我获得了第二组 JPEG 图像。 p>
最后,我尝试使用相同的函数来转换第一组 JPEG 图像,将质量值指定为 75,因此我获得了第三组 JPEG 图像。
当我在第二组和第三组 JPEG 图像之间进行二进制比较时,图像是不同的。为什么?目标质量相同 (75),但源图像不同。
【问题讨论】:
-
我不认为 JPEG 压缩是确定性的,是吗?
-
对于任何与计算机视觉相关的东西, - 避免有损 jpgs !
-
在我看来你是在复合损失:75% of 95% != 75%
-
为什么? “目标质量相同 (75),但源图像不同”.. 完全正确。这就是为什么。
-
如果您不了解有损与无损编码,请考虑模拟副本。如果你用一台非常好的复印机复印录像带,然后用一台相当好的复印机复印,那还不如你用一台非常好的复印机复印原件。 (当然,如果你还太小,不记得什么是录像带或模拟,这个类比可能无济于事……但当我在 20 多年前第一次了解有损压缩时,它确实帮助了我。)跨度>
标签: python opencv image-processing jpeg image-compression