@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, чтобы ограничить область поиска изображения только в указанной области на экране.
@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.