WebP的SSIM计算

时间:2019-08-04 19:52:36

标签: imagemagick jpeg graphicsmagick webp ssim

使用SSIM作为比较指标时,ImageMagick的“比较”似乎提供了不相关的数字。我正在使用ImageMagick 7.0.8-58 Q16。

我尝试了各种级别的WebP压缩(包括无损压缩)

magick compare -metric SSIM original.png lossless.webp difference.png

提供0.734809。我希望视觉上无法分辨的图像(看起来没有瑕疵,因为它是在无损模式下压缩的WebP文件)大约在0.999左右

接收到这样的结果后,我假设将PNG与WebP进行专门比较存在问题,因此我尝试将原始PNG与具有目标SSIM的压缩JPEG进行比较。 Fred的ImageMagick Scripts的SSIM软件包给出的结果为ssim = 0.949和dssim = 0.051。相反,ImageMagick对于相同的文件给出了0.711049的结果。

magick compare -metric SSIM original.png compressed.jpg difference.png

可悲的是,Fred的SSIM似乎不适用于WebP,而GraphicsMagick的比较不支持SSIM。那么如何从ImageMagick获取准确的SSIM,或者还有其他方法为WebP文件获取SSIM?

2 个答案:

答案 0 :(得分:1)

您已将Webp安装为ImageMagick的代理吗?如果是,它应该显示在magick -version的代理列表中。您的平台/操作系统是什么?

我的ssim脚本似乎在IM 7.0.8.59 Q16 Mac OSX上对我有用

magick rose: rose.webp
ssim rose.webp rose.webp

ssim=1 dssim=0


ImageMagick比较也对我也很好。

magick compare -metric ssim rose.webp rose.webp null:

1


我相信webp到png的较低值可能与webp有损压缩有关。我从ImageMagick和脚本中获得了相似的值:

magick rose: rose.webp
magick rose: rose.png

magick compare -metric ssim rose.webp rose.png null:
0.895189

ssim rose.webp rose.png
ssim=0.895 dssim=0.105


但是,如果我使用无损压缩,则可以得到完美的比较:

magick rose: -define webp:lossless=true rose.webp
magick rose: rose.png

ssim rose.webp rose.png
ssim=1 dssim=0

magick compare -metric ssim rose.webp rose.png null:
1

添加:

对我而言,webp图像在命令行中的顺序无关紧要。

在这里,我使用无损压缩。

magick rose: rose.png
magick rose: -define webp:lossless=true rose.webp

magick compare -metric ssim rose.webp rose.png null:
1
1magick compare -metric ssim rose.png rose.webp null:
1

在这里,我不使用无损压缩。

magick rose: rose.png
magick rose: rose.webp

magick compare -metric ssim rose.webp rose.png null:
0.895189
magick compare -metric ssim rose.png rose.webp null:
0.895189

答案 1 :(得分:0)

实际上,答案很简单。我使用了错误版本的ImageMagick。只需更改比较的顺序就可以了:

magick compare -metric SSIM compressed.jpg original.png difference.png