预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

课程名称数字图像处理实验序号实验8实验名称图像匹配——模板匹配实验地点综B207实验学时2实验类型验证性2017年10月16日一、实验目的及要求在机器识别物体的过程常需把不同传感器或同一传感器在不同时间不同成像条件下对同一景物获取的两幅或多幅图像在空间上对准或根据已知模式到另一幅图中寻找相应的模式这就叫做匹配。模板匹配是一种最原始、最基本的模式识别方法。利用模板匹配可以在一幅图像中找到已知的物体。这里的模板指的是一幅待匹配的图像相当于模式识别的模式。基本要求如下:(1).进行匹配的两幅图像为JPG格式或BMP格式。(2).能够进行对两幅数字图像的匹配。(3)采用交互式程序对图像进行匹配。二、实验原理与内容模板匹配是指用一个较小的图像即模板与源图像进行比较以确定在源图像中是否存在与该模板相同或相似的区域若该区域存在还可确定其位置并提取该区域。模板匹配常用的一种测度为模手术台与源图像对应区域的误差平方和。设f(xy)为M×N的源图像t(jk)为J×K(J≤MK≤N)的模板图像则误差平方和测度定义为:DS(xy)称为源图像中与模板对应区域的能量它与像素位置(xy)有关但随像素位置(xy)的变化DS(xy)变化缓慢。DST(xy)模板与源图像对应区域的互相关它随像素位置(xy)的变化而变化当模板t(jk)和源图像中对应区域相匹配时取最大值。DT(xy)称为模板的能量它与图像像素位置(xy)无关只用一次计算便可。显然计算误差平方和测度可以减少计算量。基于上述分析若设DS(xy)也为常数则用DST(xy)便可进行图像匹配当DST(xy)取最大值时便可认为模板与图像是匹配的。但假设DS(xy)为常数会产生误差严重时将无法下确匹配因此可用归一化互相关作为误差平方和测度其定义为:模板匹配的示意图如图图2.1所示其中假设源图像f(xy)和模板图像t(kl)的原点都在左上角。对任何一个f(xy)中的(xy)根据上式都可以算得一个R(xy).当x和y变化时t(jk)在源图像区域中移动并得出R(xy)所有值。R(xy)的最大值指出了与t(jk)匹配的最佳位置若从该位置开始在源图像中取出与模板大小相同的一个区域便可得到匹配图像。三、实验软硬件环境1.计算机2.Matlab软件四、实验过程(实验步骤、记录、数据、分析)图像模板匹配实验代码如下:a=imread('b.jpg');a1=imcrop(a);imwrite(a1'moban.jpg''jpg');%构建一个模板pipeitu=imread('moban.jpg');%读取模板图像yuantu2gray=rgb2gray(yuantu);%将原图灰度化pipeitu2gray=rgb2gray(pipeitu);%将模板图灰度化[pipei_heightpipei_width]=size(pipeitu2gray);[yuantu_heightyuantu_width]=size(yuantu2gray);imshow(yuantu);%显示原图像holdon;fori=1:yuantu_height-pipei_heightforj=1:yuantu_width-pipei_widthtemp_picture=imcrop(yuantu2gray[jipipei_width-1pipei_height-1]);r=corr2(temp_picturepipeitu2gray);%取得相关系数ifr>0.95%规定值为0.95%下面用plot函数在原图的坐标系上画出匹配区域plot(j:j+pipei_widthi'b');plot(j:j+pipei_widthi+pipei_height'b');plot(ji:i+pipei_height'b');plot(j+pipei_widthi:i+pipei_height'b');endendend这是在原图上截取一部分作为模板经过比较长的运算终于可以在原图像上匹配到的区域五、测试/调试及实验结果分析通过代码可以看到在原图像找到了匹配区域并且可以画上了对应的框。六、实验结论与体会结论:通过本次实验学会了如何在原图像上截取部分作为匹配模板。由于本次读入的图像大概为250k相对有点大所以经过了比较长的时间才将匹配区域找到。因此我觉得提高效率的有连个一是先把图像经过压缩再进行匹配二是优化算法提高代码的执行率。