您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 图像处理技术-——-模板匹配算法.
——1图像处理技术图像处理技术图像处理技术图像处理技术————————模板匹配算法模板匹配算法模板匹配算法模板匹配算法左左左左力力力力2002200220022002....3333....认知是一个把未知与已知联系起来的过程。对一个复杂的视觉系统来说,它的内部常同时存在着多种输入和其它知识共存的表达形式。感知是把视觉输入与事前已有表达结合的过程,而识别也需要建立或发现各种内部表达式之间的联系。匹配匹配匹配匹配就是建立这些联系的技术和过程。建立联系的目的是为了用已知解释未知。章毓晋《图像工程下册》P.163一.模板匹配的基本概念一.模板匹配的基本概念一.模板匹配的基本概念一.模板匹配的基本概念模板就是一幅已知的小图像。模板匹配就是在一幅大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像,通过一定的算法可以在图中找到目标,确定其坐标位置。以8位图像(其1个像素由1个字节描述)为例,模板T(m×n个像素)叠放在被搜索图S(W×H个像素)上平移,模板覆盖被搜索图的那块区域叫子图Sij。i,j为子图左上角在被搜索图S上的坐标。搜索范围是:1≤i≤W–M1≤j≤H–N通过比较T和Sij的相似性,完成模板匹配过程。注意:图像的数据是从下到上、从左到右排列的。可以用下式衡量T和Sij相似性:∑∑==−=NnijMmnmTnmSjiD121)],(),([),(被搜索图S模板Tmn子图SijjiW-nH-m{——2∑∑∑∑∑∑======+×−=NnMmNnijMmNnijMmnmTnmTnmSnmS12111121)],([),(),(2)],([上式的第一项为子图的能量,第三项为模板的能量,都与模板匹配无关。第二项是模板和子图的互相关,随(i,j)而改变。当模板和子图匹配时,该项有极大值。将其归一化,得模板匹配的相关系数:∑∑∑∑∑∑======×=NnMmNnijMmNnijMmnmTnmSnmTnmSjiR12112111)],([)],([),(),(),(当模板和子图完全一样时,相关系数R(i,j)=1。在被搜索图S中完成全部搜索后,找出R的最大值Rmax(im,jm),其对应的子图Simjm即为匹配目标。显然,用这种公式做图像匹配计算量大、速度较慢。另一种算法是衡量T和Sij的误差,其公式为:∑∑==−=NnijMmnmTnmSjiE11|),(),(|),(E(i,j)为最小值处即为匹配目标。为提高计算速度,取一个误差阈值E0,当E(i,j)E0时就停止该点的计算,继续下一点计算。试验结果如下:注:以上试验是在赛扬600PC机上用VC6.0进行的。结果表明:被搜索图越大,匹配速度越慢;模板越小,匹配速度越快。误差法速度较快,阈值的大小对匹配速度影响大,和模板的尺寸有关。二.改进模板匹配算法二.改进模板匹配算法二.改进模板匹配算法二.改进模板匹配算法我在误差算法的基础上设计了二次匹配误差算法:第一次匹配是粗略匹配。取模板的隔行隔列数据,即四分之一的模板数据,在被搜索图上进行隔行隔列扫描匹配,即在原图的四分之一范围内匹配。由于数据量大幅度减少,匹配速度显著提高。为了合理的给出一个误差阈值E0,我设计了一个确定误差阈值E0的准则:E0=e0*(m+1)/2*(n+1)/2式中:e0为各点平均的最大误差,一般取40~50即可;m,n为模板的长和宽。阈值=0阈值=8000被搜索图尺寸模板名称模板大小R算法时间相关系数E算法时间E算法时间误差值corner16*160.94秒0.99771.10秒0.55秒2521eye13*110.55秒0.99910.60秒0.38秒1756256*256hell15*221.16秒0.99731.43秒0.44秒4323finger13*174.12秒0.99714.56秒2.30秒2117640*480nose11*173.41秒0.97873.85秒2.20秒4724——3第二次匹配是精确匹配。在第一次误差最小点(imin,jmin)的邻域内,即在对角点为(imin-1,jmin-1),(imin+1,jmin+1)的矩形内,进行搜索匹配,得到最后结果。下表是相关法、误差法、二次匹配误差法这三种模板匹配算法对两幅图像进行模板匹配的结果比较,二次匹配误差法的速度比其它算法快了10倍左右。使用二次匹配误差法对256*256像素的被搜索图进行模板匹配的结果如下:从上图结果可看出,第一次匹配位置是偶数,因为是隔行隔列进行搜索的;第二次则是精确位置。三.二次匹配误差法的主要代码三.二次匹配误差法的主要代码三.二次匹配误差法的主要代码三.二次匹配误差法的主要代码#defineAvEthreshold40//各点平均误差intEthreshold;//误差阈值被搜索图尺寸模板名称模板大小卷积法时间误差法时间二次匹配法时间corner16*160.94秒0.55秒0.06秒eye13*110.55秒0.38秒0.03秒256*256hell15*221.16秒0.44秒0.05秒finger13*174.12秒2.30秒0.22秒640*480nose11*173.41秒2.20秒0.16秒模板corner模板eye模板hell——4//计算误差阈值Ethreshold=AvEthreshold*((lTemplateHeight+1)/2)*((lTemplateWidth+1)/2);//第一次粗略匹配,找出误差最小位置(nMaxHeight,nMaxWidth)//仅使用模板中隔行隔列的数据,在被搜索图中隔行隔列匹配nMinError=99999999;for(i=0;ilHeight-lTemplateHeight+1;i=i+2){for(j=0;jlWidth-lTemplateWidth+1;j=j+2){nError=0;for(m=0;mlTemplateHeight;m=m+2){for(n=0;nlTemplateWidth;n=n+2){//指向被搜索图像倒数第i+m行,第j+n个象素的指针lpSrc=(char*)lpDIBBits+lLineBytes*(i+m)+(j+n);//指向模板图像倒数第m行,第n个象素的指针lpTemplateSrc=(char*)lpTemplateDIBBits+lTemplateLineBytes*m+n;pixel=(unsignedchar)*lpSrc;templatepixel=(unsignedchar)*lpTemplateSrc;nDelta=(int)pixel-templatepixel;if(nDelta0)//做绝对值运算{nError=nError-nDelta;}else{nError=nError+nDelta;}}if(nError(Ethreshold))break;//误差大于阈值,进入下一点计算}if(nErrornMinError)//与最小误差比较{nMinError=nError;//记录最小误差及其坐标nMaxWidth=j;nMaxHeight=i;}}}
本文标题:图像处理技术-——-模板匹配算法.
链接地址:https://www.777doc.com/doc-5041884 .html