数字图像模板匹配.docx
《数字图像模板匹配.docx》由会员分享,可在线阅读,更多相关《数字图像模板匹配.docx(11页珍藏版)》请在冰豆网上搜索。
数字图像模板匹配
摘要
模板匹配就是把不同传感器或同一传感器在不同时间、不同成像条件下对同一景物获取的两幅或多幅图像在空间上对准,或根据已知模式到另一幅图中寻找相应模式的处理方法。
模板匹配是数字图像处理的重要组成部分之一。
简单而言,模板就是一幅已知的小图像。
模板匹配就是在一幅大图像中搜寻目标,已知该图中有要找的目标,且该目标同模板有相同的尺寸、方向和图像,通过一定的算法可以在图中找到目标,确定其坐标位置。
当以两块区域像素点灰度值的差别作为判别标准时,最简单的一种方法是直接把各点灰度的差值累计起来。
另一种方法是计算两块区域的对应像素点灰度值的相关系数,相关系数越大,则两块图像的匹配程度越高。
该方法的匹配效果要更好,匹配成功率有所提高。
关键词:
图像匹配;MATLAB;灰度相关;模板匹配
1设计目的与要求
1.1设计目的
数字图像出技术的迅猛发展,使其应用前景的得到了不可限量的扩展。
如今各行各业都在积极发展与图像相关的技术,数字图像处理逐渐凸显出其魅力。
其应用如医学影像,航天航空,无人驾驶,自动导航,工业控制,导弹制导,文化艺术等。
边缘检测技术在图像处理和计算机视觉等领域起着重要的作用,是图像分析,模式识别,目标检测与分割等的前期处理。
前期边缘检测的好坏,直接影响后期更高级处理的精度。
在实际图像边缘检测问题中,图像的边缘作为图像的一种基本特征,经常被应用到较高层次的图像应用中去。
它在图像识别,图像分割,图像增强以及图像压缩等的领域中有较为广泛的应用,也是它们的基础。
1.2设计要求
通过分析题目的基本要求,我将此使用两种方法实现匹配:
一个是基于灰度的模板匹配,另一个是基于灰度的快速匹配。
在以上两种方法中,用户可以对两张图像进行匹配并显示匹配结果。
2系统设计原理
2.1数字图像模板匹配及原理
计算机模式识别所要解决的问题,就是用计算机代替人去认识图像和找出一幅图像中人们感兴趣的目标物。
在机器识别物体的过程,常需把不同传感器或同一传感器在不同时间,不同成像条件下对同一景物获取的两幅或多幅图像在空间上对准,或根据已知模式到另一幅图中寻找相应的模式,这就叫做匹配。
模板匹配是一种最原始、最基本的模式识别方法。
研究某一特定对象物位于图像的位置,进而识别对象,这就是匹配的问题。
利用模板匹配可以在一幅图像中找到已知的物体。
这里的模板指的是一幅待匹配的图像,相当于模式识别的模式。
基本要求如下:
(1).进行匹配的两幅图像为JPG格式或BMP格式。
(2).能够进行对两幅数字图像的匹配。
(3).采用交互式程序对图像进行匹配。
3设计方案
3.1设计思想
由于各种各样的原因如(成象条件的差异)图象预处理,引入的误差等,参与图象匹配的模板与潜在的匹配子图象间通常存在着程度不同的不一致,因此根据模板在一幅陌生图象中检测出潜在的匹配对象并得出它在图象中的位置是一件复杂的工作。
模板匹配是指用一个较小的图像,即模板与源图像进行比较,以确定在源图像中是否存在与该模板相同或相似的区域,若该区域存在,还可确定其位置并提取该区域。
3.2设计流程
①数字图像:
数字图像是由被称做像素的小块区域组成的二维像素矩阵。
一般把图像分成3种形式:
单色图像,灰度图像和彩色图像。
②像素:
表示图像颜色的最小单位
③灰度图像:
灰度图是指只含亮度信息,不含色彩信息的图像,就像平时看到的黑白照片:
亮度由暗到明,变化是连续的。
灰度图的每个像素的亮度用一个数值来表示,通常数值范围在0—255之间,即可用一个字节来表示,0表示黑,255表示白,而其他表示灰度。
④点阵图:
显示器的屏幕由可以发光的像素点组成.并且从几何位置看,所用这些像素点构成一个矩形的阵列.利用计算机控制各像素点按我们指定的要求发光,就构成了我们需要的图形.这种方式构成的图形我们可称之为点阵图形.
⑤点阵图形的坐标系统:
各像素点有一个坐标唯一指定了它的位置.如果点阵图形的大小是N×M,那么它的点阵共有M行N列,每个像素点的位置就由它所在的行和列的位置所唯一确定.这个行和列的位置就给出了点阵图形的坐标系统.按照前面的顺序,第m行,第n列的像素点顺序数就是m+(n-1)N.反之,顺序数为s的像素点在第sModN行,第Int(s/N)+1列,这里的sModN是s除以N后的余数,Int(s/N)是s/N的整数部分.需要注意的是第m行,第n列的像素点的坐标可能不是(m;n),而是(m-1;n-1).这是因为有时为了在计算机中处理的方便,像素点的行列的排序不是从1,而是从0开始的。
我们常用的显
3.3算法设计
由于各种各样的原因如(成象条件的差异)图象预处理,引入的误差等,参与图象匹配的模板与潜在的匹配子图象间通常存在着程度不同的不一致,因此根据模板在一幅陌生图象中检测出潜在的匹配对象并得出它在图象中的位置是一件复杂的工作。
模板匹配是指用一个较小的图像,即模板与源图像进行比较,以确定在源图像中是否存在与该模板相同或相似的区域,若该区域存在,还可确定其位置并提取该区域。
模板匹配常用的一种测度为模手术台与源图像对应区域的误差平方和。
设f(x,y)为M×N的源图像,t(j,k)为J×K(J≤M,K≤N)的模板图像,则误差平方和测度定义为:
(2.1)
由上式展开可得:
(2.2)
令
(2.3)
(2.4)
(2.5)
DS(x,y)称为源图像中与模板对应区域的能量,它与像素位置(x,y)有关,但随像素位置(x,y)的变化,DS(x,y)变化缓慢。
DST(x,y)模板与源图像对应区域的互相关,它随像素位置(x,y)的变化而变化,当模板t(j,k)和源图像中对应区域相匹配时取最大值。
DT(x,y)称为模板的能量,它与图像像素位置(x,y)无关,只用一次计算便可。
显然,计算误差平方和测度可以减少计算量。
基于上述分析,若设DS(x,y)也为常数,则用DST(x,y)便可进行图像匹配,当DST(x,y)取最大值时,便可认为模板与图像是匹配的。
但假设DS(x,y)为常数会产生误差,严重时将无法下确匹配,因此可用归一化互相关作为误差平方和测度,其定义为:
(2.6)
模板匹配的示意图如图图2.1所示,其中假设源图像f(x,y)和模板图像t(k,l)的原点都在左上角。
对任何一个f(x,y)中的(x,y),根据上式都可以算得一个R(x,y).当x和y变化时,t(j,k)在源图像区域中移动并得出R(x,y)所有值。
R(x,y)的最大值指出了与t(j,k)匹配的最佳位置,若从该位置开始在源图像中取出与模板大小相同的一个区域,便可得到匹配图像。
图2.1模板匹配示意图
4代码实现
4.1相关函数说明
1、imread函数
功能:
从图像文件(BMP,HDF,JPEG,PCX,TIFF,XWD等格式)中读入图像数据。
格式:
A=imread(文件名,’图像文件格式’)
说明:
文件名为指定图像文件名称的字符串。
’图像文件格式’为图像文件格式的字符串。
文件名必须在当前目录或MATLAB路径中,如果找不到则录找’文件名.图像文件格式’.A为无符号8位整数(uint8)。
如果文件灰度图像(详细解释见“算法设计”中的“概念解释”),则A为一个二维数组;如果文件是一个真彩色RGB图像,则A是一个三维数组(m×n×3)。
举例:
A=imread(‘E:
\temp_picture.jpg’);%读取存放在E盘下的名为temp_picture.jpg的图像,并将其整个点阵数据传给A。
注:
在MATLAB中申请一个变量时不需要指定类型,其具体类型由系统自动判别。
2、imwrite函数
功能:
交图像写入图像文件(以BMP,HDF,JPEG,PCX,TIFF,XWD等格式)。
格式:
imwrite(A,文件名,‘图像文件格式’)
说明:
文件名为指定图像文件名称的字符串。
‘图像文件格式’是指定图像文件的保存格式的字符串。
如果A是一个无符号8位整数表示的灰度图像或真彩色图像,imwrite直接交数组A中的值写入文件。
如果A为双精度浮点数,imwrite首先使用uint8(round(255*A))自动将数组中的值变换为无符号8位整数,即交[0,1]范围内的浮点数变换为[0,255]范围内8位整数,然后写入文件。
3、imshow函数
功能:
图像显示。
格式:
imshow(I)
说明:
在图形窗口显示I,其中I为用imread函数赋值的变量,是一个图形矩阵。
4、rgb2gray函数
功能:
转换RGB图像或颜色映像表为灰度图像。
格式:
I=rgb2gray(RGB)
说明:
RGB为用imread函数赋值的变量,是一个图形矩阵;I为一个表示灰度图像的二维数组。
5、imcrop函数
功能:
图像剪裁。
格式:
Ⅰ:
I2=imcrop(I)
Ⅱ:
I2=imcrop(I,RECT)
说明:
格式Ⅰ为交互方式,imcrop显示输入图像,等待用户用鼠标定义要剪裁的矩形。
格式Ⅱ为非交互方式,对灰度图像进行非交互方式的剪裁操作,通过四元素向量RECT=[xminyminwidthheight]指定剪裁矩阵,这些值是定义在坐标系中的,xmin和ymin是图像矩阵I的一处坐标,width是以此坐标为准向右的延伸的长度,height是以此坐标为准向下延伸的长度,由此构成要剪裁的矩形区域。
6、size函数
功能:
用来求出某一个变量的的大小参数。
格式:
[x,y]=size(I)
说明:
I用imread函数赋值的变量,是一个图形矩阵且为灰度图像,x用来保存I的高度值,y用来保存I的宽度值。
7、mean2函数
功能:
求图像均值
格式:
m=mean2(A)
说明:
mean2函数可用来计算图像矩阵A的均值m,m是双精度标量。
举例:
I=imread(‘temp_picture.jpg’);
m=mean2(I)
运行结果:
m=
107.6755
8、corr2函数
功能:
求图像间相关系数。
格式:
r=cor2(A,B)
说明:
corr2函数计算图像矩阵A与B的相关系数,矩阵A与B的大小相同,如均为:
m×n。
计算公式如下:
(3.1)
其中,
=mean2(A),
=mean2(B)。
相关系数是表示矩阵A与B的线性联系密切程度的一个统计量,相关系数值是小于等于1的正数。
值为1时,表示矩阵A与B的线性联系最为密切,值为0时,表示矩阵A与B不相关,线性联系最最弱。
举例:
I=imread(‘temp_picture.jpg’);
C=corr2(I,I);
运行结果如下:
C=1
9、plot函数
功能:
在线性坐标系中绘制二维数据
格式:
plot(x,y,’颜色’)
说明:
x,y可以为任意一个失量。
举例:
plot(1:
100,4,'r');%在纵坐标为4处画一条平行于x轴,长度为100的红色的线段
%其中1:
100表示从1到100以默认值为1的速度递增,’r’表示红色
10、hold命令
功能:
可以交图形添加到现有的图形中,从而实现图形的叠加。
如果交hold设置为ON,则MATLAB在绘图时交不再清除已经存在的图形,而是交新的数据直接加到当前图形中。
当新的数据落在原来的坐标范围之外时,MATLAB交自动进行坐标比例的调整。
4.2模版匹配源代码
functiontestpipei_1(yuantu,pipeitu)
yuantu=imread('D:
\原始图.bmp');%读取原图像
pipeitu=imread('D:
\匹配图.bmp');%读取匹配图像
yuantu2gray=rgb2gray(yuantu);%将原图灰度化
pipeitu2gray=rgb2gray(pipeitu);%将匹配图灰度化
[pipei_height,pipei_width]=size(pipeitu2gray);
[yuantu_height,yuantu_width]=size(yuantu2gray);
imshow(yuantu);%显示原图像
holdon;
fori=1:
yuantu_height-pipei_height
forj=1:
yuantu_width-pipei_widthtemp_picture=imcrop(yuantu2gray,[j,i,pipei_width-1,pipei_height-1]);
r=corr2(temp_picture,pipeitu2gray);%取得相关系数
ifr>0.95%规定值为0.95
%下面用plot函数在原图的坐标系上画出匹配区域
plot(j:
j+pipei_width,i,'b');
plot(j:
j+pipei_width,i+pipei_height,'b');
plot(j,i:
i+pipei_height,'b');
plot(j+pipei_width,i:
i+pipei_height,'b');
end
end
end
5系统仿真结果与分析
图4.1原始图.bmp
图4.2匹配图.bmp
图4.3匹配结果
源程序中读取原始图和匹配图分别如图4.1图4.2所示,运行模版匹配程序,如果找到了匹配地点就会用蓝色矩形将匹配区域给圈定下来,实际运行结果如图4.3所示。
结论
随着信号处理技术和计算机技术的不断发展,生产自动化水平的不断提高,机器视觉的应用越来越广泛。
数字图像匹配是机器视觉信息处理领域里一项十分基本和重要的技术。
在匹配过程中匹配算法起到举足轻重的作用,对匹配算法进行研究具有一定的理论价值和实际意义。
在工业检测、半导体封装等流水线作业中,匹配的速度和精度一直是研究的热点。
图像匹配技术是近代信息处理,特别是图像信息处理领域中极为重要的技术。
图像匹配就是要根据参考图像和实时图像来选定某些特征、相似性准则及搜索策略进行相关运算,以确定匹配的最佳空间对应点。
它主要研究的问题有特征空间、相似性度量和搜索策略三个方面。
图像匹配关键是要确定有效的匹配方法,要求匹配概率高、误差小、速度快且适时性好。
通过这次课程设计培养了自己对新的编译软件的自学能力和适应能力,也培养了我对新知识的接受能力,让我收获很多。
在老师和同学的帮助下,通过上网查找资料完成了模板匹配的课程设计,也使我对matlab有了新的体会。
参考文献
[1]阮秋琦.数字图像处理学[M].北京:
电子工业出版社,2001.
[2]龚声蓉,刘纯平,王强等.数字图像处理与分析[M].北京:
清华大学出版社,2006.
[3]贾永红.计算机图像处理与分析[M].武汉:
武汉大学出版社,2001.
[4]陈桂明.应用MATLAB语言处理数字信号与图像处理[M].北京:
科学出版社,2000.
[5]夏德深,傅德胜.计算机图像处理及应用[M].南京:
东南大学出版社,2004.
[6]姚敏.计算机图像处理[M].北京:
机械工业出版社,2006.
[7]容观澳.计算机图像处理[M].北京:
清华大学出版社,2000.
[8]吴健康.数字图像分析[M].北京:
邮电出版社,1989.