Как нам получить какой-то сопоставимый результат, который мы затем можем при необходимости используйте позже (например, если совпадением был зеленый шаблон, сделайте что-нибудь).
Код: Выделить всё
import cv2
red_template = cv2.imread('resources/temptest/red_template.png')
yellow_template = cv2.imread('resources/temptest/yellow_template.png')
blue_template = cv2.imread('resources/temptest/blue_template.png')
green_template = cv2.imread('resources/temptest/green_template.png')
work_image = cv2.imread('resources/temptest/work_image.png')
all_templates = [red_template, yellow_template, blue_template, green_template]
for template in all_templates:
result = cv2.matchTemplate(work_image,template,
method=cv2.TM_CCORR_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
threshold = 0.945
if max_val >= threshold:
print('found it')
break
else:
print('not found')
continue
красный шаблон, желтый шаблон, синий шаблон, зеленый шаблон, рабочее изображение.
Результат функции при выполнении:< /p>
Код: Выделить всё
not found
not found
not found
found it
Мой вопрос: как нам это сделать? вывести идентификатор шаблона, который успешно совпал?
Я размышлял над этим и пробовал несколько разных методов, таких как добавление возвращаемого результата или возвращаемого шаблона но ни один из них не дает мне измеримый объект, и обычно я получаю следующую ошибку, когда пытаюсь сравнить вывод с одним из шаблонов:
ValueError: операнды не могут передаваться вместе с фигурами.
Подробнее здесь: https://stackoverflow.com/questions/792 ... mething-th