首页 > 解决方案 > Python OpenCV - 确定性分数模板匹配

问题描述

我有以下 OpenCV 模板匹配代码、扫描和模板(来自我之前在这里提出的问题):

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%?我发现了一些关于 minMaxLoc 的信息,但我不知道这是否是我正在寻找的内容以及 minMaxLoc 的结果是什么,更不用说如何使用这些值了。老实说,我发现文档不是很清楚。

所以:

我希望有人能帮帮忙。

问候, Ganesh

标签: python-3.xopencvtemplate-matching

解决方案


推荐阅读