как найти точность соответствия шаблона - PullRequest
0 голосов
/ 23 февраля 2019

я делаю сопоставление с шаблоном
сейчас, что я хочу сделать, это найти точность сопоставления с шаблоном
Я сделал сопоставление с шаблоном, но как я могу получить точность, я думаю, что я должен вычесть сопоставленный шаблонрегион и шаблон изображения.как мне этого добиться

КОД

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread('image.jpg',0)
img1 = img.copy()
template = cv.imread('template.jpg',0)
w, h = template.shape[::-1]

method = ['cv.TM_CCOEFF_NORMED','cv.TM_CCORR_NORMED']
for meth in method:
    img = img1.copy()
    method = eval(meth)

    res = cv.matchTemplate(img,template,method)
    min_val, max_val, min_loc, max_loc = cv.minMaxLoc(res)

    bottom_right = (top_left[0] + w, top_left[1] + h)
    cv.rectangle(img,top_left, bottom_right, 255, 2)
    plt.subplot(121)
    plt.imshow(res,cmap = 'gray')
    plt.title('Matching Result')

    plt.subplot(122)
    plt.imshow(img,cmap = 'gray')
    plt.title('Detected Point') 
    plt.show()

Ответы [ 2 ]

0 голосов
/ 29 марта 2019

Пожалуйста, не используйте абсолютный диф или любой другой подобный метод для расчета точности.У вас уже есть значения точности в переменных min_val, max_val.

Соответствие шаблону OpenCV использует различные формы корреляции для вычисления соответствия.Поэтому, когда вы используете cv.matchTemplate(img,template,method), значение, сохраненное в изображении res, является результатом этой корреляции.

Итак, когда вы используете cv.minMaxLoc(res), вы вычисляете минимальный и максимальный результат этой корреляции.Я просто использую max_val, чтобы сказать мне, насколько хорошо он соответствует.Так как min_val и max_val находятся в диапазоне [-1.0, 1.0], если max_val равно 1,0, я принимаю это как 100% -ное совпадение, max_val 0,5 как 50% -ое совпадение и т. Д.

Я пытался использовать комбинацию min_val и max_val для масштабирования значений, чтобы лучше понять, но я обнаружил, что простое использование max_val дает мне желаемые результаты.

0 голосов
/ 25 февраля 2019

Есть несколько примеров метрик, которые можно использовать для сравнения изображений.Вот некоторые из них:

Все это требует некоторых элементарных операций над значениями пикселей изображений для сравнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...