jMagick – 图像比较

我正在尝试开发一个程序,该程序将获取网页的快照,然后将其与旧网页进行比较并突出显示更改(如果有)。

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

但由于缺乏适当的文档,我无法找到任何相关的内容。 如果有人可以帮助我使用任何代码示例进行图像比较,这将非常有用。

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

可能的重复是: 这和此 。 但同样,没有适当的解决方案可以从这些推断。

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

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

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

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

代码段:

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

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

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

Interesting Posts