У меня есть следующий код для OpenCV templateMatch, сканирования и шаблона (из вопроса, который я задал ранее здесь ):
import cv2
import numpy as np
#load image into variable
img_rgb = cv2.imread('example_scan.jpg')
#load template
template = cv2.imread('example_template.jpg')
#read height and width of template image
w, h = template.shape[0], template.shape[1]
res = cv2.matchTemplate(img_rgb,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where( res >= threshold)
for pt in zip(*loc[::-1]):
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,255,0), 2)
img_rgb = cv2.resize(img_rgb,(800,600))
cv2.imwrite("example_result.png", img_rgb)
Сканирование:
Шаблон:
Результат такой:
Хорошо, так что это работает: templateMatch находит расположение кругов, которые выглядят как шаблон. Отлично!
Теперь мой вопрос звучит так: насколько OpenCV уверен, что найденные местоположения верны? Допустим, по шкале от 0% до 100%? Я нашел кое-что о minMaxLo c, но я не знаю, то ли это, что я ищу и что говорят результаты minMaxLo c, не говоря уже о том, как использовать эти значения. Я считаю, что документация не очень ясна, если честно.
Итак:
Надеюсь, кто-то может помочь.
С уважением, Гейн sh