我需要在实际图像中获取匹配图像的坐标,以便我可以对其执行操作。但是,我尝试了以下两种方法,但似乎都不起作用:
方法 1:使用下面,我可以找到匹配项,但返回的坐标只是要匹配的图像的宽度和高度(我已经知道)。我想在实际图像中获得相同的位置。
BufferedImage actualImg = ImageIO.read(new File("C:/Images/SrcImg.PNG"));
ImageTarget actualTgt = new ImageTarget(actualImg);
BufferedImage searchImg = ImageIO.read(new File("C:/Images/TgtImg.PNG"));
ImageTarget searchTgt = new ImageTarget(searchImg);
ScreenRegion scrReg = new StaticImageScreenRegion(actualTgt.getImage());
ScreenRegion resReg = scrReg.find(searchTgt);
ScreenLocation center = resReg.getCenter();
System.out.println(":getElementFromImage: x_loc,y_loc =["+center.getX()+","+center.getY()+"]");
方法 2:在下面的代码中,我尝试使用 sikulix Finder。但是,有了这个 src.hasNext() 返回 true BUT src.next() 抛出空指针异常。不确定这里有什么问题:
Finder src = new Finder("C:/Images/SrcImg.PNG");
Pattern pat = new Pattern("C:/Images/TgtImg.PNG").similar(0.5);
src.find(pat);
Match m;
while( src.hasNext())
m = src.next();
src.destroy();
java.lang.NullPointerException
at org.sikuli.script.Finder.next(Finder.java:484)
at com.work.ImageFinder.main(ImageFinder.java:38)
我已经花了很多时间来完成这项工作。任何帮助将非常感激。
谢谢!