Ошибка PyAutoGUI: «Размеры игл превышают размеры изображения стога сена или региона» при поиске изображений, меньших, чеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка PyAutoGUI: «Размеры игл превышают размеры изображения стога сена или региона» при поиске изображений, меньших, че

Сообщение Anonymous »

Я разрабатываю бота Python с использованием PyAutoGUI, которому необходимо находить небольшие изображения (8x8 пикселей) в определенной области экрана. Несмотря на изменение размера всех изображений ровно до 8x8 пикселей, я продолжаю получать следующую ошибку:

Флаг обработки ошибки wasp_ab/flag_X.png: размеры иглы превышаютразмеры изображения или региона стога сена

Ошибка появляется для каждого изображения, которое я пытаюсь найти.
Фрагмент кода, который я использую для захвата и определения местоположения этих «флагов»:

Код: Выделить всё

python
import pyautogui as pg

map_region = (1700, 20, 220, 250)  # Dimensions of the search area

def go_to_flag(path, wait):
flag = pg.locateOnScreen(path, confidence=0.8, region=map_region)
if flag:
x, y = pg.center(flag)
pg.moveTo(x, y)
pg.click()
else:
logging.warning(f"Flag not found for image: {path}")

go_to_flag(item['path'], item['wait'])
Код для захвата изображений:
Я использую следующий код, чтобы делать снимки областей вокруг курсора, сохраняя каждую захватить в виде изображения размером 8x8 пикселей:

Код: Выделить всё

python
import os
from PIL import Image
import pyautogui as pg
import ctypes
from contextlib import contextmanager

@contextmanager
def hide_mouse_cursor():
"""Hide the mouse cursor during the screenshot."""
while ctypes.windll.user32.ShowCursor(False) >= 0:
pass
try:
yield
finally:
while ctypes.windll.user32.ShowCursor(True) < 0:
pass

class Rec:
def photo(self):
x, y = pg.position()
region = (x - 4, y - 4, 8, 8)  # 8x8 pixels capture around the cursor
with hide_mouse_cursor():
photo = pg.screenshot(region=region)
path = f'waypoints/flag_{self.count}.png'
photo.save(path)
Несмотря на то, что определенная область (map_region) намного больше изображения (220x250 пикселей), ошибка сохраняется.
Что я могу сделать? Пробовали:
  • Изменение размера изображений: размер всех изображений был изменен до 8x8 пикселей.
  • Подтверждаю. размер региона: для параметра map_region установлено значение 220x250 пикселей, что должно быть достаточно большим для размещения изображений 8x8. Тестирование различных настроек достоверности, чтобы проверить, может ли проблема быть связана с точностью сопоставления.
Кто-нибудь сталкивался с этой ошибкой при использовании маленьких изображений с помощьюlocateOnScreen? Существуют ли какие-либо дополнительные конфигурации или альтернативные подходы, позволяющие PyAutoGUI постоянно распознавать изображения меньшего размера?
Будем очень благодарны за любую помощь!

Подробнее здесь: https://stackoverflow.com/questions/791 ... ion-dimens
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»