Как сравнить результат нескольких шаблонов соответствия CV2?Python

Программы на Python
Ответить
Anonymous
 Как сравнить результат нескольких шаблонов соответствия CV2?

Сообщение Anonymous »

Привет, ребята, небольшой вопрос относительно сопоставления шаблонов CV2.
Итак, у нас есть следующая функция, и она находит правильный шаблон, который соответствует рабочему изображению.

красный шаблон синий шаблон зеленый шаблон желтый
рабочее изображение шаблона

Код: Выделить всё

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

Результат выполнения функции:

Код: Выделить всё

'not found' 'not found' 'not found' 'found it'
Так что все работает нормально, и как только цикл for достигает соответствующей итерации, мы получаем положительный результат.
Мой вопрос: как нам это сделать? выведите идентификатор шаблона, который успешно совпал.
Я размышлял над этим и пробовал несколько разных методов, таких как добавление возвращаемого результата или возвращаемого шаблона< /code> но ни один из них не дает мне измеримого объекта, и обычно при попытке я получаю следующую ошибку: чтобы сравнить вывод с одним из шаблонов:
ValueError: операнды не могут передаваться вместе с фигурами.
Поэтому мой вопрос снова заключается в том, как получим ли мы какой-то сопоставимый результат, который затем сможем использовать при необходимости (например, если совпадением был зеленый шаблон, то сделайте что-нибудь).

Подробнее здесь: https://stackoverflow.com/questions/792 ... -templates
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»