寻找一幅图像的匹配的模板,可以在一段视频里寻找出我们感兴趣的东西,比如条形码的识别就可能需要这样类似的一个工作提取出条形码区域(当然这样的方法并不鲁棒)。而OpenCV已经为我们集成好了相关的功能。函数为matchTemplate。
所谓模板匹配就是在一幅图像中寻找和模板图像(patch)最相似的区域。该函数的功能为,在输入源图像Source image(I)中滑动框,寻找各个位置与模板图像Template image(T)的相似度,并将结果保存在结果矩阵result matrix(R)中。该矩阵的每一个点的亮度表示与模板T的匹配程度。然后可以通过函数minMaxLoc定位矩阵R中的最大值(该函数也可以确定最小值)。
匹配的方法有:
CV_TM_SQDIFF 平方差匹配法,最好的匹配为0,值越大匹配越差
CV_TM_SQDIFF_NORMED 归一化平方差匹配法
CV_TM_CCORR 相关匹配法,采用乘法操作,数值越大表明匹配越好
CV_TM_CCORR_NORMED 归一化相关匹配法
CV_TM_CCOEFF 相关系数匹配法,最好的匹配为1,-1表示最差的匹配
CV_TM_CCOEFF_NORMED 归一化相关系数匹配法
前面两种方法为越小的值表示越匹配,后四种方法值越大越匹配。
其实模板匹配的使用和直方图反向投影calcBackProject函数很像,只是直方图反向投影对比的是直方图,而模板匹配对比的是图像的像素值,相比较而言,直方图反向投影的匹配鲁棒性更好。
总结这个函数,感觉功能不是很强大,应用不是很广,因为只能在图像中搜索出指定的模板,如果模板是从待搜索目标中截取出来的,效果会很好,如果模板不是待搜素图像的一部分,效果就差的多了,所以该函数的使用还是有很大的局限性。
分享到:
相关推荐
openCV人脸跟踪小项目——打开摄像头标出人脸位置并跟踪,有源码,haarcasecade_frontface_alt.xml分类器,makefile文件,可执行文件
在网上找了好久都没找到基于opencv的金字塔模板匹配算法代码,我就自己把金字塔和模板匹配的代码结合了一下,代码基于opencv2.48.
用来清理网盘的视频的工具, 用了halcon模板匹配和opencv模板匹配2种方法,感觉固定角度的匹配opencv好像快一点,而且稳定一点。
基于QT+Opencv模板匹配支持(缩放、旋转)
OpenCV-python轮廓提取与模板匹配(csdn)————程序
基于opencv的模板匹配的代码,代码中包含了丰富的注释,非常适合初学者
基于OpenCv实现了模板图像的旋转匹配,此代码基于matchTemplate函数封装实现可以得知旋转角度的模板匹配(vs2013+opencv2.4.9) 2.带旋转的模板匹配的原理及算法实现(c++) 带旋转的模板匹配算法,能够匹配带旋转...
opencv-python使用GPU资源--虚拟环境安装与编译opencv源码(csdn)————程序
QT+Opencv相机标定获取去畸变矫正源码 QT+OpenCV 9点标定源码 QT+OpenCV 圆拟合源码 QT+Opencv模板匹配源码 QT+Opencv做匹配+旋转+缩放 QT+Opencv做形状匹配源码 QT+Opencv特征匹配源码 QT+Opencv线点匹配源码
通过OPENCV库函数能是实现多目标模板匹配查找并且限定阈值
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 011】检测并匹配兴趣点》 博文链接: http://blog.csdn.net/davebobo/article/details/52598850 OpenCV版本:2.4.9
基于OpenCv实现了模板图像的旋转匹配,此代码基于matchTemplate函数封装实现可以得知旋转角度的模板匹配
Opencv学习笔记 辛苦收集希望和大家交流
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 005】 操作像素》 博文链接: http://blog.csdn.net/davebobo/article/details/52541612 OpenCV版本:2.4.9
这个一个很基础的opencv学习笔记,一些常会遇到的问题,在这里做了肤浅的介绍,还有很多问题没有提及,以后会陆续整理,并上传
基于opencv封装了一个模板匹配类,可以二值化匹配、灰度匹配。有说明书,起个借鉴作用,交流
对着官方的教程翻译的,有一点点自己的注释,但不一定全对,没把握的地方有英文原文。
OpenCV学习笔记(C++版OpenCV学习笔记,主要包括基础模块和DNN模块)带详细注释源码!!!
OpenCV学习笔记,(基础概念,归纳总结),相信你所选择的。
实现提取出图像中于模板相同的区域,其中模板的大小与图像中区域的大小相同