2016-11-22 10 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

Это довольно необычный способ использования методов Сикули. Есть ли определенная причина, почему вы используете его таким образом? –

+0

@EugeneS Это потому, что я пытаюсь использовать Sikuli в моей системе автоматизации Android. Тогда обычный способ «Экран» не подходит для этой ситуации ... –

+0

Я вижу. Можете ли вы по-прежнему работать с регионами? –

ответ

0

Как раз как быстрая установка. Вы можете навести указатель мыши на соответствующую часть изображения, а затем захватить координаты указателя.

+0

Да, я мог бы сделать это вручную, но я думаю, что Сикуликс должен это сделать для меня? –

+0

Я имею в виду, что вы можете сказать сикули для зависания (местоположение) – Antiparticle

+0

Ага, я уже пробовал это, используя Screen click(). Он отлично работает ... Интересно, почему искатель не работает на моем обычном изображении? –