作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

函数原型

void matchTemplate( InputArray image, InputArray templ,OutputArray result, int method, InputArray mask = noArray());

参数说明

  1. InputArray类型的image,输入图像。
  2. InputArray类型的templ,待匹配图像。
  3. OutputArray类型的result,输出匹配结果。
  4. int类型的method,匹配方法,具体介绍见下方。
  5. InputArray类型的mask,掩膜。

匹配方法介绍

模板匹配函数中自带了6种匹配方法,其原理是以原图某点为起始点,选择模板同大小的区域进行计算,根据得到的结果选择最优的解,所以当你使用该函数时会发现,假如原图1000*1000,模板100*100,那结果图尺寸为900*900,各方法对应的公式和原理如下所示。

1.CV_TM_SQDIFF,平方差匹配法。得到的数值越小,说明越匹配。

2.CV_TM_SQDIFF_NORMED,归一化平方差匹配法。得到的数值越小,说明越匹配。

3.CV_TM_CCORR,相关匹配法。得到的数值越大,说明越匹配。该方法容易受背景干扰。

4.CV_TM_CCORR_NORMED,归一化相关匹配法。得到的数值越大,说明越匹配。该方法容易受背景干扰。

5.CV_TM_CCOEFF,相关系数法,也是零均值互相关法,将均值减去后,再计算相关性。得到的数值越大,说明越匹配。该方法应用性较优。

6.CV_TM_CCOEFF_NORMED,归一化相关系数法。得到的数值越大,说明越匹配。该方法应用性较优。

测试代码

#include <iostream>
#include <opencv2\opencv.hpp>
#include <opencv2/highgui/highgui.hpp> using namespace cv;
using namespace std;int main()
{cv::Mat src = imread("test1.jpg");cv::Mat sample = imread("t.png");// 匹配cv::Mat result;matchTemplate(src, sample, result, CV_TM_CCOEFF);// 归一化normalize(result, result, 0, 1, NORM_MINMAX, -1, Mat());// 获取最小值double minValue; double maxValue; Point minLocation; Point maxLocation;Point matchLocation;minMaxLoc(result, &minValue, &maxValue, &minLocation, &maxLocation, Mat());matchLocation = maxLocation;// 框选结果cv::Mat draw = src.clone();rectangle(draw, matchLocation, Point(matchLocation.x + sample.cols, matchLocation.y + sample.rows), Scalar(255, 0, 0), 2, 8, 0);imshow("src", src);imshow("sample", sample);imshow("draw", draw);waitKey(0);return 0;
}

测试效果

图1 原图

图2 待检测目标

图3 检测结果

如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

OpenCV-模板匹配cv::matchTemplate相关推荐

  1. 【OpenCV3】模板匹配——cv::matchTemplate()详解

    模板匹配通常被用于目标检测.相似度分析中,opencv2和opencv3中提供了一个专门用于模板匹配的函数--cv::matchTemplate(),下面就对该函数进行详细的介绍. 先从一个实际的例子 ...

  2. Opencv(C++)笔记--模板匹配cv::matchTemplate()和最值计算cv::minMaxLoc()

    目录 1--模板匹配 1-1--OpenCV API 1-2--六种匹配方法 1-3--代码实例 2--最值计算 2-1--OpenCV API 1--模板匹配 使用模板图像与原图像进行匹配,Open ...

  3. OpenCV模板匹配函数:matchTemplate()介绍

    OpenCV模板匹配函数:matchTemplate()介绍

  4. opencv 模板匹配(cvMatchTemplate)

    opencv 模板匹配(cvMatchTemplate) 模板匹配是通过在输入图像上滑动模板图像块对实际的图像块和输入图像进行匹配,并且可以利用函数cvMinMaxLoc()找到最佳匹配的位置.例如在 ...

  5. OpenCV模板匹配Template Matching

    OpenCV模板匹配Template Matching 模板匹配Template Matching 目标 理论 什么是模板匹配? OpenCV提供哪些匹配方法? 代码 解释 结果 模板匹配Templa ...

  6. 图像匹配与OpenCV模板匹配

    介绍 (Introduction) As a data scientist at VATBox, I've mainly worked on projects which at their core ...

  7. OpenCV模板匹配识别图片中的数字

    OpenCV模板匹配识别图片中的数字 前言 本博客主要实现利用OpenCV的模板匹配识别图像中的数字,然后把识别出来的数字输出到txt文件中,如果识别失败则输出"读取失败". 操作 ...

  8. opencv java match_OpenCV模板匹配函数matchTemplate详解

    参考文档:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/histograms/template_matchin ...

  9. OpenCV笔记:模板匹配 cv2.matchTemplate()、cv2.minMaxLoc() 与 绘制矩形 cv2.rectangle() 方法介绍

    导读 模板匹配是用来在一副大图中搜寻查找模版图像位置的方法.绘制矩形是用来将模版图像的匹配结果展示出来的方法. 模板匹配实现简单(2~3行代码),计算效率高,不需要执行阈值化.边缘检测等操作来生成二值 ...

  10. opencv学习笔记十八:模板匹配(cv2.matchTemplate、cv2.minMaxLoc)

    1.目标匹配函数:cv2.matchTemplate() res=cv2.matchTemplate(image, templ, method, result=None, mask=None) ima ...

最新文章

  1. Struts配置文件务必采用正确的DTD
  2. 动态语言,静态类型,强类型定义语言,弱类型定义语言,
  3. 成为Apache顶级项目核心贡献者是一种什么样的体验?
  4. phpstudy免费安全检测服务_Phpstudy联合各大安全厂商为用户提供免费安全检测服务...
  5. 交叉编译openwrt php,构建 openwrt 交叉编译工具链
  6. Spark笔记:复杂RDD的API的理解(下)
  7. udp helper 的使用
  8. caffe数据集——LMDB
  9. python初级爬虫工程师_如何入行爬虫工程师
  10. 陈欧:创业是最美好的生活方式
  11. STM32L476 FLASH option bytes
  12. C#压缩ACCESS数据库的类源码
  13. 判断二极管导通例题_从120分到140分:高考数学解答题五大答题策略
  14. 数据库错误代码:1055(Error Number: 1055) 解决方法
  15. 宽带IPTV单线复用
  16. python自动化操作浏览器
  17. 下面关于在dos停止mysql_下面关于在DOS停止MySql的命令中,正确的是 (5.0分)_学小易找答案...
  18. Java进阶学习第八天——WEB入门
  19. setInterval()与setTimeout() 详细
  20. vue中拿到接口,并获取数据,渲染到页面

热门文章

  1. 【python函数】函数
  2. PHP执行耗时脚本实时输出内容
  3. 《手机测试Robotium实战教程》——第2章,第2.2节Eclipse的安装
  4. 金笛JDMail邮件系统从源头上为企业铸造防lj邮件墙--4
  5. logback 配置详解(一)configuration and logger
  6. expat 处理xml常用函数名
  7. 1431. 拥有最多糖果的孩子
  8. 中专计算机总结论文,中专计算机毕业论文...doc
  9. python用来自动修改pdf_python实现从pdf文件中提取文本,并自动翻译的方法
  10. 显示部分x_i5 9400F+GTX 1030+23.8英寸,攀升迁跃者X上手简评