Могу ли я использовать Equals To (оператор сравнения) для сравнения изображений в Sikuli? - PullRequest
0 голосов
/ 04 июля 2018

Код ниже был использован. Я считаю, что из-за оператора сравнения выскакивает ошибка.

Мне нужно сопоставить скриншот и сравнить его с настоящим изображением.

while(1):
  if (imgA == imgA):
    click(X)                             #Close the Window
  else:
    click(Y)                             #Error Message
    break

1 Ответ

0 голосов
/ 16 июля 2018

Ключевое слово Sikuli, которое вы ищете, существует (). Проверьте документы для более подробной информации.

Чтобы углубиться в ваш вопрос, я бы рассмотрел что-то вроде следующего:

if exists('img_a.png', 10):
    click(x)
else:
    click(y)

Это будет ждать 10 секунд для вашего скриншота. Как только это изображение будет обнаружено, оно перейдет в блок if и выполнит команду (и). Если изображение не найдено через 10 секунд, оно переместит блок else и выполнит эти команды.

Кроме того, обратите внимание, что в документации упоминается, что существует () поддерживает шаблоны и строки. Вы можете вызвать изображение по его имени или предоставить более подробную информацию о шаблоне. Например:

searchRegion = Region(x, y, w, h)

if searchRegion.exists(Pattern('img_a.png').exact(), 10):
    click(x)
else:
    click(y)

Приведенный выше скрипт предписывает регион для поиска и проверяет точное совпадение этого изображения в данном регионе. Вы можете изменить .exact () на .simil (0.90), чтобы настроить допуск соответствия. 0,01-0,99 являются действительными совпадениями, причем .exact и .simil (0.99) функционально совпадают.

...