Форум сайта python.su
Это бот для распознания изображения и цены возле нее, мне нужно что бы он мог проверять много изображений в данной области, но он просто проверяет первое изображение а на остальное забывает.
Помогите пожалуйста
import pyautogui
import pytesseract
from PIL import Image
# Пути к каждому изображению и соответствующая им цена
images_with_prices = {
“C:\\Image\\obez.png”: 4000,
“C:\\Image\\semen.png”: 800,
}
# Функция для распознавания цены на скриншоте
def recognize_price(region):
# Сделать скриншот указанной области
screenshot = pyautogui.screenshot(region=region)
# Преобразовать скриншот в изображение
img = Image.frombytes('RGB', screenshot.size, screenshot.tobytes())
# Распознать текст на изображении
text = pytesseract.image_to_string(img, config='–oem 3 –psm 6 outputbase digits')
# Вернуть распознанный текст
return text.strip()
while True:
try:
for image_path, price in images_with_prices.items():
# Определить координаты области, где должно быть найдено изображение
search_region = (480, 180, 370, 175) # (слева, сверху, ширина, высота)
# Искать изображение в ограниченной области
locate = pyautogui.locateOnScreen(image_path, confidence=0.99, region=search_region)
print(locate) # Добавьте эту строку для вывода результата поиска
if locate is not None:
# Определить координаты области, где должна быть цена
price_region = (680, 225, 80, 35) # (слева, сверху, ширина, высота)
# Распознать цену на скриншоте указанной области
price_text = recognize_price(price_region)
# Здесь вы можете добавить логику, чтобы проверить цену и выполнить какие-либо действия, если цена ниже
if price_text:
# Проверка, состоит ли текст только из цифр
if price_text.isdigit():
price = float(price_text)
print(price_text)
if price < images_with_prices:
# Выполнить действие, если цена ниже
pyautogui.click(locate)
pass
else:
print(“Невозможно распознать цену”)
pass
else:
# Если изображение не найдено, переходим к следующему изображению
continue
except pyautogui.ImageNotFoundException:
pass # Продолжаем цикл, если изображение не найдено
Офлайн
оберните код тегом - нечитабельно
Офлайн