Александр Столяров
Ученик
(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.
▎Примечания:
• Убедитесь, что пути к изображениям указаны правильно.
• Пороговое значение можно настроить в зависимости от точности поиска.