模板匹配是将模板与重叠的图像区域进行比较,以定位重合区域的图像处理方法,本文记录 OpenCV 相关内容实现方法。
简介
模板匹配任务需要将模板在图像中搜索,以确定模板所在位置的一种技术,Python OpenCV 中封装的函数为 cv2.matchTemplate
- 官方文档:https://docs.opencv.org/2.4.13.7/modules/imgproc/doc/object_detection.html?highlight=matchtemplate#cv2.matchTemplate
函数说明
函数引用形式
代码语言:javascript复制cv2.matchTemplate(image, templ, method[, result]) → result
参数说明
参数 | 含义 |
---|---|
image | 被搜索的图像,模板需要在图像中网格计算损失函数(需要 int8 或 float32 格式的图像) |
templ | 搜索的模板图像,尺寸不能比 image 大,需要和image有相同的图像数据格式 |
method | 指定损失函数计算方法 |
损失函数
method=CV_TM_SQDIFF
直接计算均方误差作为损失函数
method=CV_TM_SQDIFF_NORMED
按照二者向量模长做归一化后计算均方误差损失函数
method=CV_TM_CCORR
计算互相关函数结果作为损失函数
method=CV_TM_CCORR_NORMED
计算按照模长归一化后的互相关函数结果作为损失函数,个人比较推荐,效果也较好,如果图像并不适于直接使用该参数可以想办法构造出归一化相关损失函数
method=CV_TM_CCOEFF
去中心化相关损失函数
- 其中:
method=CV_TM_CCOEFF_NORMED
相关系数损失函数
示例引用
代码语言:javascript复制out_v = cv2.matchTemplate(image, template, cv2.TM_CCORR_NORMED)
参考资料
- https://docs.opencv.org/2.4.13.7/modules/imgproc/doc/object_detection.html?highlight=matchtemplate#cv2.matchTemplate
- https://baike.baidu.com/item/相关系数/3109424?fr=aladdin