知识要点
- 模板匹配: res = cv2.matchTemplate(img, template, cv2.TM_SQDIFF)
res = cv2.matchTemplate(img, template, cv2.TM_SQDIFF)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
# 画出匹配位置
cv2.rectangle(img, min_loc, (min_loc[0] + 85, min_loc[1] + 110), (0, 0, 255), 2)
- 模板匹配和卷积原理很像,模板在原图像上从原点开始滑动,计算模板与(图像被模板覆盖的地方)的差别程度,这个差别程度的计算方法在opencv里有6种,然后将每次计算的结果放入一个矩阵里,作为结果输出。假如原图形是AxB大小,而模板是axb大小,则输出结果的矩阵是(A-a+1)x(B-b+1) .
-
TM_SQDIFF:计算平方不同,计算出来的值越小,越相关
-
TM_CCORR:计算相关性,计算出来的值越大,越相关
-
TM_CCOEFF:计算相关系数,计算出来的值越大,越相关
-
TM_SQDIFF_NORMED:计算归一化平方不同,计算出来的值越接近0,越相关
-
TM_CCORR_NORMED:计算归一化相关性,计算出来的值越接近1,越相关
-
TM_CCOEFF_NORMED:计算归一化相关系数,计算出来的值越接近1,越相关
-
建议使用归一化的计算方法会相对公平一些.

文章介绍了OpenCV库中用于图像处理的模板匹配技术,包括TM_SQDIFF等六种比较方法,并提供了匹配示例代码。同时,文章也详细讲解了Otsu算法(大津算法)在图像二值化中的应用,特别是如何自动寻找最优阈值进行背景和前景分割。
最低0.47元/天 解锁文章
1581

被折叠的 条评论
为什么被折叠?



