假设我有一个模板图片并在视频中搜索匹配项,需要考虑的措施是什么?
来自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)
答案 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并提供了一个可能对您有所帮助的示例。