Мне нужно определить цвет (красный) только в небольшой области экрана (я могу определить координаты). (python) - PullRequest
1 голос
/ 29 января 2020

Я и некоторые из моих друзей работали над программой последние пару недель, и это, по сути, последняя вещь, которую мы не могли понять. Нам нужно определить цвет (красный) только в небольшой области экрана (я могу определить координаты). Он должен проверять каждые 3-5 секунд и возвращать true или что-то еще, потому что, если это так, мне нужно либо закрыть окно, выключить компьютер или прекратить запуск остальной части сценария.

Ответы [ 2 ]

0 голосов
/ 29 января 2020

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

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

from PIL import Image
import pyautogui
myScreenshot = pyautogui.screenshot()
myScreenshot.save(r'C:\Users\matthew.gaiser\PycharmProjects\stackoverflow37\screenshot.png')
image = Image.open(r'C:\Users\matthew.gaiser\PycharmProjects\stackoverflow37\screenshot.png')
picture = image.load()
print(picture[20,40])

Просто удалите изображение после захвата пикселя из этого конкретного места.

0 голосов
/ 29 января 2020

Это во многом зависит от того, что вы хотите, чтобы ваша программа делала ...

OpenCV , вероятно, самый общий выбор c.

Если вы хотите автоматизировать задачу, вы можете использовать PyAuto Gui. Он включает в себя утилиты для управления мышью и клавиатурой.

Если вы просто хотите узнать цвет пикселя в определенном месте / координате, тогда Подушка , вероятно, самый простой способ.

...