OpenCV - 图像模板匹配 matchTemplate

2022-08-09 14:32:57 浏览数 (1)

模板匹配是将模板与重叠的图像区域进行比较,以定位重合区域的图像处理方法,本文记录 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

0 人点赞