与视频

时间:2015-12-03 14:56:29

标签: opencv numpy threshold template-matching

假设我有一个模板图片并在视频中搜索匹配项,需要考虑的措施是什么?

来自OpenCV教程here 1.loc = np.where(res> = threshold)给我numpy数组。如何在1-100的范围内推断它,其中100表示​​完全匹配,80表示80%匹配,依此类推。 2.我不清楚最小值,最大值..矩形坐标表示什么?   #应用模板匹配     res = cv2.matchTemplate(img,template,method)     min_val,max_val,min_loc,max_loc = cv2.minMaxLoc(res)

1 个答案:

答案 0 :(得分:1)

我不太熟悉Python,但我使用过模板匹配和OpenCV。

执行模板匹配会产生一个结果矩阵 - 在您的示例中称为res

根据所使用的模板匹配方法,此结果矩阵中最亮/最暗(最大/最小)点是您的最佳匹配。

在您的示例中,使用了方法cv2.TM_SQDIFF_NORMED,它将结果矩阵值标准化为0到1之间。

然后你可以遍历你的结果矩阵点并且只存储那些通过某个阈值的点,在他们使用0.8的例子中它相当于80%的匹配。

最后一步是使用矩形绘制功能将每个匹配标记到绘图上,其工作方式如下:

Rectangle(img, pt1, pt2, color, thickness=1, lineType=8, shift=0)
  • img - 图像矩阵,您要在
  • 上绘制的图片
  • pt1 - 矩形的左上角(x,y)
  • pt2 - 矩形的右下角(x,y)
  • color - 线条颜色(BGR格式)

我回答了类似的问题here并提供了一个可能对您有所帮助的示例。