Распознавание изображений Python с помощью pyautogui

Когда я пытаюсь распознать изображение с помощью pyautogui, он просто говорит: None

import pyautogui
s = pyautogui.locateOnScreen('Dark.png')
print s

Когда я запустил этот код, изображение было на моем экране, но все равно не получилось.


person Rehman Ahmed    schedule 28.02.2016    source источник


Ответы (3)


Pyautogui.locateOnScreen имеет параметр, который определяет «доверие» к изображению, которое вы вводите.

Таким образом, pyautogui справится с небольшими отклонениями пикселей.

Например:

import pyautogui
s = pyautogui.locateOnScreen('Dark.png', confidence=0.9)
print(s)



Дополнительную информацию см. на странице https://buildmedia.readthedocs.org/media/pdf/pyautogui/latest/pyautogui.pdf.

person Jonas De Schouwer    schedule 07.05.2019
comment
Просто заметка. Чтобы аргумент ключевого слова доверия работал, вам необходимо установить пакет opencv-python: `pip install opencv-python - person Adam Wallner; 12.02.2021

Это идеальный пиксель.

Он не может найти изображение, если оно не совпадает на 100%.

Например, я обрезал область расширением Opera. Затем я запустил свой скрипт в Firefox, и pyautogui его не распознал.

  1. Не допускайте изменения размера или сжатия изображения программным обеспечением или расширениями для захвата экрана.
  2. Используйте то же окно/экран (размер, разрешение), в котором вы сохранили скриншот.
person Dedektor Dedektoru    schedule 28.06.2017

В моей системе я получаю это, если изображение находится на втором мониторе. Если я перемещаю его на главный экран, изображение находится успешно.

Похоже, что функциональность нескольких мониторов еще не реализована: из http://pyautogui.readthedocs.org/en/latest/roadmap.html

Запланированные будущие функции (конкретные версии еще не запланированы):

  • Найдите список всех окон и их заголовков.
  • Щелкните координаты относительно окна, а не всего экрана.
  • Упростите работу в системах с несколькими мониторами.
  • ...
person SiHa    schedule 01.03.2016