【问题标题】:ImageMagick: How to compare original PNG to lossy JPEG?ImageMagick:如何将原始 PNG 与有损 JPEG 进行比较?
【发布时间】:2011-05-20 13:55:18
【问题描述】:

我想将原始 PNG 图像与有损 JPEG 图像进行比较,看看我损失了多少。我发现我可以使用 ImageMagic 来比较图像。我更喜欢使用 Java (im4java)。我对他们的文档(http://www.imagemagick.org/script/compare.php)感到非常困惑。它没有描述它适用于哪个平台。我如何使用这些命令行,它们甚至在 im4java 中可用吗?如果有人能写出我如何使用它的步骤,我将不胜感激。

【问题讨论】:

  • 请注意.. 虽然这种工具可以帮助您找到差异,即使您将其分解为 PSNR delta...没有任何东西可以模拟人类感知。损失是否令人反感最终是人眼的问题。以音频压缩为例(是的……这是音频感知)。这通常通过丢弃中频来起作用......但它通常并不明显。如果您采用高点并丢弃一半的数据......它仍然会更令人反感/引人注目。
  • @John Green,这是对感知音频编码的糟糕描述。
  • @Mr.Wizard - 你可能是对的。我在写作方面的尝试取得了有限的成功。 :)

标签: java image-processing imagemagick


【解决方案1】:

ImageMagick 在许多平台上运行。如果您单击Binary Releases,他们会列出可用的软件包。正如其主页所述,im4java 库调用 ImageMagick 命令行工具来完成其工作,因此它可以在同时支持 ImageMagick 和 Java 的任何平台上运行。浏览它的API documentation,好像compare命令在im4java中是不可用的,所以你必须修改im4java来支持它。

【讨论】:

  • 在那种情况下,还有其他图书馆有吗?我只是想比较一下 jpg 转换器的性能。只需一次交易。
  • 最终在 ImageMagic 中使用 Windows 解决方案。谢谢
【解决方案2】:

那么为什么不能直接使用 ImageMagick 命令行工具呢?

请注意,在compare 的帮助下比较 2 个不同的图像只会导致有意义的结果,如果两者在像素方面确实具有相同的尺寸(宽度 x 高度)。 compare 进行逐像素比较。

我会这样做:

 compare \
       -verbose \
       -debug coder \
       -log "%u %m:%l %e" \
        orig1.png \
        orig2.jpeg \
       -compose src \
        diff.png

此命令将 2 张图像作为输入:orig1.pngorig2.jpeg。它产生diff.png 作为输出。它还为您提供了一些关于 stdout 的调试信息。输出图像的所有像素都以红色着色,这在输入之间是不同的。

另一种可能是这个修改过的命令:

 compare \
       -verbose \
       -debug coder \
       -log "%u %m:%l %e" \
        orig1.png \
        orig2.jpeg \
       -compose difference \
        diff.png

它以另一种方式可视化差异。您也可以不将差异写入文件,而是告诉 compare 打开一个窗口并在屏幕上显示差异:

 compare \
       -verbose \
       -debug coder \
       -log "%u %m:%l %e" \
        orig1.png \
        orig2.jpeg \
       -compose difference \
        x:

【讨论】:

    【解决方案3】:

    我的博客条目更多关于JPEG quality and what is the difference of ImageMagick and Lightroom,但您可以找到有用的命令行来进行所需的比较:

    composite image1.ext image2.ext -compose difference diff.png
    

    确保您使用 .png(或 .gif 或其他无损格式)作为输出图像,因为首先您对差异感兴趣,而 .jpg 会将其扭曲为照片。

    【讨论】:

      猜你喜欢
      • 2019-07-07
      • 2019-05-28
      • 2015-08-10
      • 2015-11-01
      • 2017-12-02
      • 1970-01-01
      • 2016-10-02
      • 2018-07-31
      • 1970-01-01
      相关资源
      最近更新 更多