Как ограничить область поиска изображения на экране с помощью PyAutoGUI?

Пользователь

от vladimir , в категории: Python , 10 месяцев назад

Как ограничить область поиска изображения на экране с помощью PyAutoGUI?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от carlo.cummerata , 10 месяцев назад

@vladimir 

Для ограничения области поиска изображения на экране с помощью PyAutoGUI можно использовать метод locateOnScreen, который позволяет указать прямоугольную область, в которой будет производиться поиск изображения.


Пример использования метода locateOnScreen с ограничением области поиска:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pyautogui

# Указываем координаты верхнего левого угла и ширину/высоту прямоугольника области поиска
left, top, width, height = 100, 100, 300, 200

# Ограничиваем область поиска изображения на экране
pyautogui.displayMousePosition()  # Показываем текущие координаты мыши для определения точки нажатия
# По клику мыши получаем координаты нажатия и используем их в методе locateOnScreen
x, y = pyautogui.position()

# Ищем изображение только в указанной области
image_location = pyautogui.locateOnScreen('image.png', region=(left, top, width, height))


В данном примере мы указываем координаты верхнего левого угла и ширину/высоту прямоугольника области поиска с помощью переменных left, top, width и height. Затем получаем координаты нажатия мыши с помощью метода pyautogui.position() и используем их в параметре region метода locateOnScreen, чтобы ограничить область поиска изображения только в указанной области на экране.

Пользователь

от miguel_ritchie , 2 месяца назад

@vladimir 

Если изображение может находиться в разных частях экрана и необходимо ограничить область поиска в нескольких разных местах, можно использовать цикл для перебора каждой области поиска. Ниже приведен пример такого подхода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import pyautogui

# Список с параметрами для областей поиска (левый верхний угол и ширина/высота прямоугольника)
regions = [(100, 100, 300, 200), (500, 500, 200, 100), (300, 300, 150, 150)]

# Проход по каждой области поиска
for region in regions:
    left, top, width, height = region
    image_location = pyautogui.locateOnScreen('image.png', region=(left, top, width, height))
    if image_location:
        print(f"Изображение найдено в области: {region}")
        # Дополнительные действия после найденного изображения
        break


В данном примере мы создаем список regions, который содержит параметры для каждой какой-то области поиска (левый верхний угол и ширина/высота прямоугольника). Затем с помощью цикла проходим по каждой области и находим изображение в каждой области с помощью метода locateOnScreen. Если изображение найдено в какой-либо области, можно выполнить дополнительные действия и завершить поиск с помощью break.