【问题标题】:An easy way (tool?) to compare images pixel for pixel in different formats?一种简单的方法(工具?)来比较不同格式的图像像素?
【发布时间】:2010-10-16 01:29:43
【问题描述】:

好吧,我现在用 java 编写了一个基本的无损 jpeg 连接器,但我想将它生成的文件与原始文件进行比较。

我只能在十六进制编辑器中比较这么多,有没有人知道一种简单的方法,基于软件或 java(最好是软件,因为我现在不想再编码了!)我可以比较两个图像并生成一个像素不相同的“差异图”?

谢谢。

【问题讨论】:

标签: java image image-processing comparison jpeg


【解决方案1】:

还有一个方便的web app called Resemble.js,它可以逐像素分析和比较图像。根据您的喜好,图像中的不同像素(如果有)会以粉色或黄色突出显示。

【讨论】:

    【解决方案2】:

    TortoiseIDiff 是一个免费的图像差异查看器:

    http://tortoisesvn.tigris.org/TortoiseIDiff.html

    它是 TortoiseSVN 的一部分,但可以在没有 Subversion 的情况下使用。

    取决于您的项目,并非所有文件都在版本下 控件是文本文件。很可能你也会有图像,因为 文档/帮助文件的示例屏幕截图和图表。

    对于这些文件,无法使用通用文件比较工具, 因为它们仅适用于文本文件并逐行区分。这是 Tortoise Image Diff 工具 (TortoiseIDiff) 救援。它可以并排显示两个图像,甚至显示图像 相互之间的 alpha 混合。

    【讨论】:

      【解决方案3】:

      最好的方法是使用 Pix for windows(随 DirectX SDK 提供)。支持位图、PNG 和 Jpeg...享受吧!

      【讨论】:

        【解决方案4】:

        感谢您的建议。

        我首先尝试了 Gimp 方法,该方法效果很好,除非图像之间的差异非常小。我找不到“增强差异”选项来使差异明显,并且直方图也只能粗略表示差异。

        最后我使用了ImageMagick,这是我不久前安装的东西,但我忘记了。创建差异/比较图像就像键入一样简单:

         compare first.jpg second.png difference.gif
        

        在命令行中。

        这一切都很好地解释了here.

        【讨论】:

          【解决方案5】:

          最新版本的 Araxis Merge 将进行图像差异 (http://www.araxis.com/merge/topic_comparing_image_files.html)。

          不幸的是,它不是一个免费的应用程序,所以你是否愿意为它付费是另一回事......

          【讨论】:

            【解决方案6】:

            你可以比Perceptual Diff 做得更糟。

            【讨论】:

            • 这看起来很不错,但它可能比我需要做的要多得多。我只想逐个像素地比较图像并查看确切的差异。这是为了检查我的“无损”jpeg 编辑效果如何。
            • 我应该再澄清一点:您可以指定一个标志,该标志将使用 PDiff 输出包含每个像素差异的图像。唯一的缺点是它的格式很奇怪(PPM):)
            • Hector Yee 的 Perceptual Diff 工具的 Java 端口可以生成 .png 差异图像:bitbucket.org/joebowbeer/perceptualdiff
            【解决方案7】:

            对于这样的东西,我喜欢 netpbm/pbmplus 工具包。您可以使用djpegpnmtoplainpnm 将每个图像转换为简单的ASCII 格式。然后,您只需读取这两个文件并发出一个新图像,该图像显示像素不同的地方。例如,您可以计算 RGB 空间中新旧像素之间的欧几里德距离,并为零差异发出白色像素,为小差异发出浅灰色,为较大差异发出较暗的像素,等等。 ASCII 格式很简单,并且在手册页上有很好的记录,所有标准查看程序都可以直接查看。

            【讨论】:

              【解决方案8】:

              使用具有多个图层的图像编辑器,例如 Photoshop 或 Gimp 等。创建一个图像,其中每个源图像位于一个单独的图层中。

              此时,您可以通过关闭和打开顶层的可见性来直观地比较图像。

              在大多数体面的编辑器中,您还可以将顶层设置为“差异”模式。现在每个图像像素的值是底层图像中像素值的绝对差。您可以使用例如用于查看图像是否相同的直方图工具。如果它们相同,那么所有的像素值都将是 0。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2020-11-10
                • 1970-01-01
                • 2011-05-10
                • 1970-01-01
                • 1970-01-01
                • 2012-06-15
                • 2021-11-13
                • 1970-01-01
                相关资源
                最近更新 更多