2016-11-22 104 views
0

我正在使用Sikulix.jar在我的項目中搜索圖像。我的代碼如下:Sikulix找不到目標圖像

Finder f; 
Match m; 
Points2D coords = new Point2D.Double(-1, -1); 
try { 
    f = new Finder(ImageIO.read(new File("my_large_image.png"))); 
    f.find(ImageIO.read("my_sub_image.png")); 
    if (f.hasNext()) { 
     m = f.next(); 
     coords.setLocation(m.getTarget().getX(), m.getTarget().getY()); 
    } 
} catch (IOException e) {} 

要找到的圖像只是大圖像的一部分。然而,座標總是返回(-1,-1)。任何有關實施的幫助?謝謝。

更新11/25 我可能找到了一個解決方案,但我不知道它是否正確。當我縮放我的測試大圖像時(從1080 * 1920到540 * 960),圖像被找到。但相似度爲0.66。

+0

這是使用Sikuli方法的相當不尋常的方法。爲什麼你以這種方式使用它有一定的理由嗎? –

+0

@EugeneS這是因爲我試圖在我的android自動化系統中使用Sikuli。然後通常的「屏幕」方式不適合這種情況... –

+0

我明白了。你還能和Regions合作嗎? –

回答

0

就像一個快速修復。您可以將鼠標懸停在圖像的匹配部分上,然後抓住指針的座標。

+0

是的,我可以手動做到這一點,但我認爲Sikulix應該爲我做? –

+0

我的意思是你可以告訴sikuli懸停(位置) – Antiparticle

+0

啊哈,我已經嘗試過使用屏幕點擊()。它工作完美...我想知道爲什麼發現者不能在我的自定義圖像上工作? –