使用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?
答案 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