Быстрый поиск изображений внутри изображения попиксельно
Мне нужно найти в изображении другое изображение за минимальное время (вывести их координаты) на Python. Если это изображение встречается несколько раз, то надо найти их все. Желательно использовать PIL.
Я нашёл пару кодов, выполняющих это... Но мне нужна максимально возможная скорость, чего не дают те программы.
Ответы (1 шт):
Автор решения: Алексей Сенокосов
→ Ссылка
Результатом выполнения программы будут координаты всех вхождений изображения needle в изображение haystack с порогом совпадения threshold.
import cv2 #pip install opencv-python
import numpy as np
haystack = cv2.imread('1.jpg')
needle = cv2.imread('2.jpg')
# Выполняем поиск совпадений
result = cv2.matchTemplate(haystack, needle, cv2.TM_CCOEFF_NORMED)
# Определяем порог совпадения
threshold = 0.8
# Получаем координаты всех совпадений
locations = []
for y, x in zip(*np.where(result >= threshold)):
locations.append((x, y))
# Выводим координаты совпадений
print('Совпадение на координатах:', locations)