3

我正在尝试开发一个程序,该程序将拍摄网页快照,然后将其与旧的进行比较,并突出显示任何更改。

我正在使用Selenium-WebDriver拍摄快照。对于图像处理和比较,经过一番谷歌搜索后,我找到了jMagick,一个ImageMagick的 Java 接口,我认为它最适合我的要求。

但由于缺乏适当的文件,我找不到任何相关的东西。如果有人可以帮助我提供任何用于图像比较的代码示例,那将非常有帮助。

同样,问题是比较两个图像并突出显示两者之间的变化或差异。输出可能是突出显示差异的第三张图像。

可能的重复项是:thisthis。但同样,不能从这些中推断出适当的解决方案。

请如果有人可以对此有所了解,或者可能是java中的其他一些解决方案。

4

3 回答 3

1
boolean compareSuccess = compareImages("src/main/1.jpg","src/test/resources/bag_frame2.gif", "src/test/resources/ex.gif");
 //(input1,input2,outputfile)
//(boolean=true if same image...false if changes in image)
compareImages (String data,String data1, String diff) {

  CompareCmd compare = new CompareCmd();

  // For metric-output
  compare.setErrorConsumer(StandardStream.STDERR);
  IMOperation cmpOp = new IMOperation();
  // Set the compare metric
  cmpOp.metric("mae");

  // Add the expected image
  cmpOp.addImage(data);

  // Add the current image
  cmpOp.addImage(data1);

  // This stores the difference
  cmpOp.addImage(diff);

  try {
    // Do the compare
    compare.run(cmpOp);
    return true;
  }
  catch (Exception ex) {
    return false;
  }
}

试试这个。别忘了导入 im4java 或 maven

于 2016-09-02T11:27:43.780 回答
0

如果您可以进行系统调用,则可以使用 pdiff。 http://pdiff.sourceforge.net/ 该工具用于比较渲染引擎,并将两个文件之间的差异输出到一个新文件中。不过,它似乎没有 Java 绑定。

于 2014-05-23T12:20:46.820 回答
0

在此链接中,您可以找到使用 jMagick 的图像比较类的示例。他们使用比较命令行功能来处理图像比较。

代码片段:

String[] cmd = new String[] {"compare","-metric","MSE",file1,file2,"tempcompareImage.jpg"};

https://github.com/techblue/jmagick/blob/master/test/magicktest/MagickTesttools.java

此外,您可以在此处找到比较功能的详细信息:http ://www.imagemagick.org/Usage/compare/

于 2016-04-20T06:56:11.000 回答