数字图像处理 图像匹配

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
图像匹配是图像处理技术中的重要研究内容。

文本介绍了图像匹配技术的要素,对匹配算法的分类以及匹配性能评价指标,并且将各方法进行了分析比较,指出其各自的优势与不足。

同时,进一步探讨了图像匹配算法中有待研究的方向。

图像匹配是将不同时间、不同传感器、不同视角及不同拍摄条件下获取的两幅或多幅图像进行匹配融合。

图像匹配是多种图像处理及应用如物体辨识、变化检测、三维建模等的基础。

图像匹配的方法有很多种,其中基于图像特征的图像匹配是匹配中最常见的方法。

基于特征的图像匹配中,特征主要针对点特征。

基于点特征的图像匹配,特征点的提取是图像匹配的关键步骤,从提取效率、算子稳定性、定位准确性、抗噪性、计算效率上对提取算子进行分析比对,用测试图像对各个提取算子进行实验分析,得出实验结论。

通过特征点匹配算法需满足的三个原则对基于奇异值分解的角点匹配法进行了分析,得出了实验结论。

关键词:图像匹配;传感器;特征;过特征点匹配
目录
1.设计的要求与目的 ..................................................................................................................................... I I
1.1题目 (1)
1.2 设计要求 (1)
1.3设计目的: (1)
1.4性能、接口: (1)
2.设计原理 (2)
2.1概念解释: (2)
2.2数字图像匹配算法设计 (2)
2.2.1基于灰度的摸版匹配算法 (3)
2.2.2局部灰度特征的编码与计算 (4)
3. 设计方案 (6)
3.1设计思想 (6)
3.2设计流程 (6)
4.应用程序设计 (7)
4.1程序代码 (7)
4.1.1读取原图像过程 (7)
4.1.2取特征点 (8)
4.1.3映射函数 (8)
4.1.4图像匹配 (8)
4.1.5输出匹配后图像 (9)
4.2界面设计 (10)
5.仿真与结果分析 (10)
5.1仿真分析 (10)
5.2结果分析 (10)
结论 (12)
参考文献 (13)
1.设计的要求与目的
1.1题目
用特征匹配算法实现数字图像匹配
1.2 设计要求
所谓图像匹配,就是指图像之间的比较、得到不同图像之间的相似度。

基于数字图像,编写对两副数字图像进行匹配的算法及演示程序。

基本要求: (1).进行匹配的两幅图像为JPG格式或BMP格式。

(2).能够进行对两幅数字图像的匹配。

(3).采用交互式程序对图像进行匹配。

提高要求:能够对数字进行简单处理,例如放大,缩小,翻转,灰度处理,图象二值化。

开发环境:MATLAB 7.1 GUI:MATLAB 7.1自带的GUI界面编辑器
1.3设计目的:
通过分析题目的基本要求,我将此软件的基本功能主要分为2大模块:一个是数字图像处理模块,另一个是数字图像匹配模块。

在数字图像处理模块中,用户可以对数字图像进行简单的处理,可以对图像进行放大,缩小,翻转,灰度处理。

在数字图像匹配模块中,用户可以对两张图像进行匹配并显示匹配结果。

1.4性能、接口:
输入/输出形式:此软件以MATLAB7.1 GUI编辑器开发出的界面作为载体对相映的图像行相应的操作,所以输入输出形式主要是通过MATLAB7.1 GUI编辑器开发出的界面来实现的。

输入形式:输入任何一幅JPG格式或BMP格式的数字图像。

输出形式:将经过相应操作处理后的图片显示出来。

测试数据要求: 任何一幅JPG格式或BMP格式的数字图像。

2.设计原理
2.1概念解释:
①数字图像:数字图像是由被称做像素的小块区域组成的二维像素矩阵。

一般把图像分成3种形式:单色图像,灰度图像和彩色图像。

②像素:表示图像颜色的最小单位
③灰度图像:灰度图是指只含亮度信息,不含色彩信息的图像,就像平时看到的黑白照片:亮度由暗到明,变化是连续的。

灰度图的每个像素的亮度用一个数值来表示,通常数值范围在0—255之间,即可用一个字节来表示,0表示黑,255表示白,而其他表示灰度。

④点阵图:显示器的屏幕由可以发光的像素点组成. 并且从几何位置看, 所用这些
像素点构成一个矩形的阵列.利用计算机控制各像素点按我们指定的要求发光,就构成了我们需要的图形.这种方式构成的图形我们可称之为点阵图形.
⑤点阵图形的坐标系统:各像素点有一个坐标唯一指定了它的位置.如果点阵图形的大小是N×M, 那么它的点阵共有M行N 列, 每个像素点的位置就由它所在的行和列的位置所唯一确定. 这个行和列的位置就给出了点阵图形的坐标系统. 按照前面的顺序, 第m行, 第n列的像素点顺序数就是m+(n-1)N.反之, 顺序数为s的像素点在第s Mod N行, 第Int(s/N ) + 1列, 这里的s Mod N是s除以N后的余数, Int( s/N ) 是s/N的整数部分.需要注意的是第m行, 第n列的像素点的坐标可能不是(m; n), 而是(m-1; n-1). 这是因为有时为了在计算机中处理的方便, 像素点的行列的排序不是从1, 而是从0开始的.
我们常用的显示器的像素坐标就是如此.
2.2数字图像匹配算法设计
在此软件中我采用了两种图像匹配算法:①基于灰度的模板匹配算法②基于灰度的快速匹配算法。

由于各种各样的原因如(成象条件的差异)图象预处理,引入的误差等,参与图象匹配的模板与潜在的匹配子图象间通常存在着程度不同的不一致,因此根据模
板在一幅陌生图象中检测出潜在的匹配对象并得出它在图象中的位置是一件复杂的工作。

2.2.1基于灰度的摸版匹配算法
模板匹配是指用一个较小的图像,即模板与源图像进行比较,以确定在源图像中是否存在与该模板相同或相似的区域,若该区域存在,还可确定其位置并提取该区域。

模板匹配常用的一种测度为模手术台与源图像对应区域的误差平方和。

设f(x,y)
为M ×N 的源图像,t(j,k)为J ×K(J ≤M,K ≤N)的模板图像,则误差平方和测度定义为:
11
200
(,)[(,)(,)]J K j k D x y f x j y k t j k --===++-∑∑ (2.1)
由上式展开可得:
111111
2
200
00
(,)[(,)]2(,)(,)[(,)]J K J K J K j k j
k
j k D x y f x j y k t j k f x j y k t j k ------=====++-⋅+++∑∑∑∑∑∑
(2.2)
11
200(,)[(,)]J K j k DS x y f x j y k --===++∑∑ (2.3)
11
00
(,)2[(,)(,)]J K j k DST x y t j k f x j y k --===⋅++∑∑ (2.4)
11
200
(,)[(,)]J K j k DT x y t j k --===∑∑ (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 )为常数会产生误差,严重时将无法下确匹配,因此可用归一化互相关作为误差平方和测度,其定义为:
11
(,)(,)
(,)J K t j k f x j y k R x y --⋅++=
∑∑ (2.6)
下图给出了模板匹配的示意图,其中假设源图像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匹配图像
⑵基于灰度的快速匹配算法 2.2.2局部灰度特征的编码与计算
首先将整幅图像划分为k ×k 尺寸且互不重叠的方块,k 可根据问题任意选择,称该方块为R-块.如果图像的边长不是k 的整数倍,则将最底部与最右边剩余的几行、几列裁剪掉(下文将说明这并不影响最终的匹配结果).对边长为H 的图像,共可得到 H 2
/k 2
个R-块.对于R-块R i ,S(R i )表示R i 所包含像素的灰度值之和.
定义1. R-块(如图2-2中的R 5所示)与其周围8个相邻的R-块(如图2中的R 1,R 2,R 3,R 4,R 6,R 7,R 8,R 9所示)组成R-块的邻域.将R-块的邻域分为4个部分,分别为
D 1,D
2
,D
3
,D
4
(如图2-2所示),称为R-块的D-邻域.R-块R
5
分别属于4个D-邻域,即D
1
=R
1
∪R
2

R 4∪R
5
;D
2
=R
4
∪R
5
∪R
7
∪R
8
;D
3
=R
5
∪R
6
∪R
8
∪R
9
;D
4
=R
2
∪R
3
∪R
5
∪R
6
.
对于每个D-邻域中的4个R-块,可规定一个顺序(如图2-3中所取的逆时针序).对D
j

包含的4个R-块的像素灰度值之和S(R
j1),S(R
j2
),S(R
j3
),S(R
j4
)做排序,显然共有4!=24种
可能,每种排序结果可以用5位的二进制编码来表示,记作P(D
j
)∈{00000,00001,…,10111}.
图2-2划分
2-3划分后的区域
将R-块R
i 所在的4个D-块的P(D
j
)做位串拼接,得到F(R
i
)=P(D
1
)P(D
2
)P(D
3
)P(D
4
),即
F(R
i
)=(P(D
1
)<<15)+(P(D
2
)<<10)+(P(D
3
)<<5)+P(D
4
).
其中,P(D
j )为R
i
所在的邻域D
j
的二进编码,<<为移位操作,其后面的数字表示移位位
数.
定义2. F(R
i )为R
i
块的20位二进制编码特征表示,简称R
i
块的编码.
对一幅图像,提取它所有R
i 块的编码,需要计算各个R-块的灰度值和S(R
i
)、计算各个
D-邻域的编码P(D
j )、计算各个R
i
块的编码F(R
i
)等共3步.图像最外一圈的R
i
块的编码无定
义.对于边长为H的图像,上述运算的时间复杂度为O(H2).
显然,F(R
i )表示R-块R
i
的灰度与相邻8个R-块灰度的分布(序)关系,体现了图像灰度
的相对值,因此对整体灰度值的变化具有相对的稳定性.通过对R-块尺寸k的选择,可以
改变图像处理粒度的大小,以改变抵抗不同频率噪声的能力.
3. 设计方案
3.1设计思想
定义3. 在待搜索图S上以模板T的长、宽为横向、纵向步长,从S的左上角开始按模板T的大小划分S得到的子图称为限制块,记作C i, j,其中(i,j)为限制块左上角顶点在搜索图S上的坐标.这样划分后,如果在搜索图S的右侧或底部有剩余部分,则相应地从S的最右侧开始向左,或从最底部开始向上划分出一列或一行限制块,使得全部限制块可以完全覆盖搜索图S.这样得到的图S上的限制块的数量为M2/H2。

定义4. 限制块C i,j与模板T都是尺寸为N×N的图像,各自的R-块特征集合用(N/k)阶方阵A(C i,j)与A(T)表示,称为特征编码矩阵,这里k为R-块的边长.在C i,j与T作特征比较时,即比较A(T)每一个元素与A(C i,j)中每一个元素是否相等,如果相等,则记下矩阵A(C i,j)中的行号、列号.
3.2设计流程
设计流程图如图所示。

输入/输出形式:此软件以MATLAB7.1 GUI编辑器开发出的界面作为载体对相映的图像行相应的操作,所以输入输出形式主要是通过MATLAB7.1 GUI编辑器开发出的界面来实现的。

输入形式:输入任何一幅JPG格式或BMP格式的数字图像。

设计方案图
4.应用程序设计
4.1程序代码
4.1.1读取原图像过程
clear;
clc;
reference_img=imread('D:\optical1.jpg');%提取原始图片作为基准
target_img=imread('D:\optical2.jpg');%要求进行匹配的图像
subplot(2,3,1);%显示原始图像
imshow(reference_img);
title('原始图像');
subplot(2,3,2);%显示进行匹配的图像
imshow(target_img);
title('目标图像');
4.1.2取特征点
[Ix,Iy]=size(target_img);%取出图片大小
x=[160,103,102,209];%自己选定的特征点
y=[116,246,160,299];
u=[87,35,34,141];
v=[21,151,66,204];
4.1.3映射函数
Px=polyfit(x,u,1);%映射函数求解
Py=polyfit(y,v,1);
for i=1:Ix
for j=1:Iy
m=i*Px(1,1)+Px(1,2);%映射函数
n=j*Py(1,1)+Py(1,2);
m_integer=floor(m);%对映射值进行取整
n_integer=floor(n);
m_decimal=m-m_integer;%对映射值取小数
n_decimal=n-n_integer;
4.1.4图像匹配
if(ge(m_integer,Ix)||ge(n_integer,Iy)||lt(m_integer,0)||lt(n_integer,0)||m_ integer==0||n_integer==0)%判断映射点是否满足条件
result_img(i,j)=0;
result_img3(i,j)=0;
else
result_img(i,j)=target_img(m_integer,n_integer);%没有进行插值
result_img3(i,j)=(1-m_decimal)*(n_decimal*target_img(m_integer,n_integer+1) +(1-n_decimal)*target_img(m_integer,n_integer))+m_decimal*(n_decimal*target _img(m_integer+1,n_integer+1)+(1-n_decimal)*target_img(m_integer+1,n_intege r));%双线性插值
end
if result_img(i,j)==0%把没有进行插值图像和原始图像进行组合
result_img2(i,j)=reference_img(i,j);
else
result_img2(i,j)=result_img(i,j);
end
if result_img3(i,j)==0%把插值后图像和原始图像进行组合
result_img4(i,j)=reference_img(i,j);
else
result_img4(i,j)=result_img3(i,j);
end
end
end
4.1.5输出匹配后图像
subplot(2,3,3);%显示未插值图像匹配
imshow(result_img,[]);
title('未插值图像匹配');
subplot(2,3,4);%显示未插值图像匹配组合
imshow(result_img2,[]);
title('未插值图像匹配组合')
subplot(2,3,5);%显示双线性插值后图像匹配
imshow(result_img3,[]);
title('双线性插值后图像匹配');
subplot(2,3,6);%显示双线性插值后图像匹配组合
imshow(result_img4,[]);
title('双线性插值后图像匹配组合');
4.2界面设计
本程序采用交互式来演示图像匹配过程,GUI采用MATLAB 7.1自带
subplot(2,3,1);%显示原始图像的GUI界面编辑器。

主要涉及图像显示,各个功能按钮对显示的图像所进行的操作(如:放大,缩小,旋转和图像匹配),文件对话框(用来读取和保存图像)。

举例:[pname,adrname]=uigetfile('*.jpg','*.bmp')
5.仿真与结果分析
5.1仿真分析
读取了两幅图片显示在显示区域内,如图4-1所示,一幅是原始图片,一幅是目标图像。

从显示区域内剪切一块区域(按下剪切按钮可进行剪切)。

按下匹配算法1,或匹配算法2后,系统就会自动将模板图像在显示图像中进行匹配,如果找到了匹配地点就会用红色矩形将匹配区域给圈定下来,例如图4-1就是在显示图像中找到的匹配区域。

5.2结果分析
根据测试结果得:
匹配算法1(基于灰度的模板匹配算法)的匹配时间约为26秒左右。

匹配算法2(基于灰度的快速匹配算法)的匹配时间约为16秒左右。

结论:匹配算法1和匹配算法2的共同缺点是都绝对的依赖坐标系统,费时间较多。

在抗噪音能力上,匹配算法1没有抗噪音的能力,匹配算法2在理论上有一定的抗噪音的能力,可是在此程序中没做出来。

5-1测试结果图
结论
1.这此课程设计是我第一次使用新的编程软件来编程,用MATLAB来编写程序。

刚开始的时候由于不适应这种编译环境和对其语法不理解让我几度想要放弃,但是MATLAB 的数据处理能力是不容质疑的,经过几次失败后终于将程序一点一点编出来并调试通过。

2.此次课程设计是我第一次接触图形图像方面的知识,并研究图形图像领域中的一个比较热门的话题—数字图像匹配。

在研究图形图像基础知识和数字图像匹配算法的过程中查阅了许多资料,也得到了老师的一些帮助,使我对图形图像方面的知识有了一定了解,对数字图像匹配算法方面掌握了大致方向。

3.我通过图像匹配特征匹配算法对目标图像进行匹配组合处理,在这个过程中我用到了MATLAB 7.1编程环境,对程序进行设计和编写;通过对原图像提取的特征点来处理目标图像。

通过本次课程设计,使我了解了特征匹配技术用于图像匹配中的图像组合方面的知识。

图像匹配可以在空间域中进行,基本方法是提取特征点对目标图像进行处理。

当然,图像匹配还有许多方法,基于灰度的快速匹配算法就是其中之一。

4. 我通过图像匹配特征匹配算法对目标图像进行匹配组合处理,在这个过程中我用到了MATLAB 7.1编程环境,对程序进行设计和编写;通过对原图像提取的特征点来处理目标图像。

通过本次课程设计,使我了解了特征匹配技术用于图像匹配中的图像组合方面的知识。

图像匹配可以在空间域中进行,基本方法是提取特征点对目标图像进行处理。

当然,图像匹配还有许多方法,基于灰度的快速匹配算法就是其中之一。

参考文献
[1] 姚敏. 数字图像处理[M].机械工业出版社,2006: 52-60.
[2] 陈桂明.应用MATLAB语言处理数字信号与图像处理[M]. 科学出版社.2000: 50-65.
[3] 赵荣椿.数字图像处理导论[M].西北工业大学出版社,2003: 65-72.
[4] 刘刚等. MATLAB数字图像处理[M].机械工业出版社,2010:135-150.
[5] 龚声蓉等.数字图像处理与分析[M].清华大学出版社,2006: 269.
[6] 葛哲学.精通MATLAB[M].电子工业出版社,2008: 2-8.
[7] 张圣勤. MATLAB7.0实用教程[M].机器工业出版社,2006: 90-118.
[8] 孙仲康,沈振康.数字图像处理的应用[M].国防工业出版社,2008:132-158.
[9] 龚声蓉等.数字图像处理与分析(第二版)[M].清华大学出版社.2014:267
[10] 阮沈勇.MATLAB程序设计[M].电子工业出版社,2004: 70-85.。

相关文档
最新文档