@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
.