【问题标题】:SSIM calculation for WebPWebP 的 SSIM 计算
【发布时间】:2019-12-12 10:56:39
【问题描述】:

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

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

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

提供 0.734809。虽然我预计视觉上无法区分的图像大约为 0.999(显然没有伪影,因为它是一个以无损模式压缩的 WebP 文件)

收到这样的结果后,我认为将 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?

【问题讨论】:

    标签: imagemagick jpeg graphicsmagick webp ssim


    【解决方案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
    

    【讨论】:

      【解决方案2】:

      其实答案很简单。我使用了一个错误版本的 ImageMagick。只需更改比较顺序即可:

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

      【讨论】:

      • 图片的顺序并不重要,也不应该有区别。如果是,请通过imagemagick.org/discourse-server 向 Bugs 论坛报告。您这里的测试不包括任何 webp 图片,只包括 jpg 和 png?
      • 我测试了几张图片,包括 webp。是的,它确实对我有影响(显然它不应该),它适用于所有支持的图像:webp、jpeg、png 等。如果在命令行中首先提供压缩图像,由于某种原因,它会显示正确的结果.如果是第二个 - 它显示随机结果。看起来像 ImageMagick 中的错误。除非它得到修复,否则我将对其进行更新并将其报告为错误。
      • 查看我对答案的补充。对我来说,webp 图像的顺序无关紧要。但请务必发布错误报告,因为它可能取决于版本或操作系统。
      猜你喜欢
      • 2016-12-27
      • 2016-06-02
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2020-02-24
      • 2019-05-24
      • 1970-01-01
      相关资源
      最近更新 更多