模板匹配 MATLAB 实现及算法优化一、 引言现代社会已进入信息时代,随着计算机技术、通信技术和数学的进展,图像信息处理能力和水平也不断提高,相应的也得到和更多关注、讨论和更加广泛的应用。图像匹配是图像处理的一项关键技术,可广泛用于目标识别与跟踪、立体视觉、变化检测、车场车牌识别、人脸识别 、机器人导航、测绘、等领域,已成为一门新兴的分支学科。由于拍摄时间、拍摄角度、自然环境的变化、多种传感器的使用和传感器本身的缺陷,使拍摄的图像不仅受噪声的影响,而且存在严重的灰度失真和几何畸变。在这种条件下,如何有效地进行图像匹配一直是人们讨论的热点和难点。要讨论模板匹配,首先必须明确模板匹配的定义:模板匹配是指通过一定的匹配算法在两幅或多幅图像之间识别同名点,如二维图像匹配中通过比较目标区和搜索区中相同大小的窗口的相关系数,取搜索区中相关系数最大所对应的窗口中心点作为同名点。其实质是在基元相似性的条件下,运用匹配准则的最佳搜索问题。简单的讲就是,要判读一幅大图像中是否存在某种已知的图案,则以一幅与该图案有着相同尺寸和方向的小图像为模板,通过一定的算法可以在图中找到目标,确定其坐标位置。那么如何实现模板与原图像的匹配呢?下面将结合一个具体例子说明模板匹配的实现过程。二、 问题描述及解决方法1. 问题描述现有模板如下图:原图如下图:问题:如何在原图中找到模板所处的位置,并把该位置标记出来。2. 解决方法首先必须建立推断模板与原图相应位置相似程度的准则。对于彩色图像,是基于图像的特征匹配;而灰度图像,则是基于相关函数。本实验的处理对象主要是灰度图片。相关函数又分成两类:(1) 差值测度。计算公式如下: (2) 相关测度。计算公式如下: 显然,上式中的 p(x,y)取值范围是 0 到 1。越接近于 0,表示两图像相差越大;越接近于 1,表示两图像越相似。有了描述相似程度的数学模型,接下来就可以用 MATLAB 编程实现模板匹配,从而解决上述问题了。三、 MATLAB 实现要实现这个程序,必须有三个重要组成部分:1. 模板循环功能:实现模板扫过原图的每一个像素点。语句:for i=1:M-m for j=1:N—n endend描述:以模板左上角第一个点为标志点,使其依次从左到右、从上到下扫过原图每一个像素点。2. 相似性推断功能:在每一次循环时,计算模板与覆盖的原图区域的相似程度,并推断两图像是否相似。语句:temp=imcrop(im,[j,i,n-1,m-1]); r=corr2...