Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Не могу создать поиск изображения на скриншоте (сделанного с помощью PyAutoGui, используя opencv

Андрейа Ельцова Ученик (134), на голосовании 2 недели назад
нужен скрипт, функцию которая будет искать изображение на скриншоте и выдавать значение true, если изображение было найдено, в противном случае false
Голосование за лучший ответ
Александр Столяров Ученик (102) 1 месяц назад
Для поиска изображения на скриншоте в Python можно использовать библиотеку OpenCV в сочетании с numpy. Вот пример функции, которая ищет изображение на скриншоте и возвращает True, если изображение найдено, и False в противном случае.

Сначала установите необходимые библиотеки, если они еще не установлены:

pip install opencv-python numpy


Теперь создайте функцию:

import cv2
import numpy as np

def find_image_on_screenshot(screenshot_path, template_path):
# Загружаем изображение (скриншот) и шаблон
screenshot = cv2.imread(screenshot_path)
template = cv2.imread(template_path)

# Получаем размеры шаблона
h, w = template.shape[:2]

# Ищем шаблон на скриншоте
result = cv2.matchTemplate(screenshot, template, cv2.TM_CCOEFF_NORMED)

# Устанавливаем порог для определения совпадения
threshold = 0.8 # Можно настроить по необходимости
loc = np.where(result >= threshold)

# Если есть совпадения, возвращаем True
if len(loc[0]) > 0:
return True

return False

# Пример использования:
screenshot_path = 'path/to/screenshot.png'
template_path = 'path/to/template.png'

found = find_image_on_screenshot(screenshot_path, template_path)
print(found)


▎Как это работает:

1. Загрузка изображений: Функция загружает изображение-скриншот и шаблон, который нужно найти.

2. Поиск шаблона: Используется метод cv2.matchTemplate, который сравнивает шаблон с изображением и возвращает карту совпадений.

3. Пороговое значение: Устанавливается порог (например, 0.8), чтобы определить, насколько совпадение должно быть близким, чтобы считаться найденным.

4. Проверка совпадений: Если есть хотя бы одно совпадение, функция возвращает True, иначе — False.

▎Примечания:

• Убедитесь, что пути к изображениям указаны правильно.

• Пороговое значение можно настроить в зависимости от точности поиска.
Похожие вопросы