有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是一种简单的方法(工具?)以不同格式逐像素比较图像?

我现在已经用java编写了一个基本的无损jpeg joiner程序,但是我想把它生成的文件与原始文件进行比较

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

谢谢


共 (6) 个答案

  1. # 1 楼答案

    谢谢你的建议

    我首先尝试了Gimp方法,除了图像之间的差异非常小外,这种方法效果很好。我找不到一个“增强差异”选项来让差异变得明显,直方图也只给出了差异的粗略表示

    最后,我使用了ImageMagick一些我刚才安装的东西,但我完全忘记了。创建差异/比较图像与键入内容一样简单:

     compare first.jpg second.png difference.gif
    

    在命令行中

    这一切都解释得很好here.

  2. # 3 楼答案

    最好的方法是使用Pix for windows(DirectX SDK附带)。支持位图、PNG和Jpeg。。。享受吧

  3. # 4 楼答案

    TortoiseDiff是一款免费的图像差异查看器:

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

    它是Ortoisesvn的一部分,但可以在没有颠覆的情况下使用

    Depending on your project, not all files which are under version control are text files. Most likely you will have images too, for example screenshots and diagrams for the documentation/helpfile.

    For those files it's not possible to use a common file diff tool, because they only work with text files and diff line-by-line. Here is where the Tortoise Image Diff tool (TortoiseIDiff) comes to the rescue. It can show two images side-by-side, or even show the images over each other alpha blended.

  4. # 5 楼答案

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

  5. # 6 楼答案

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

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

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