数字图像处理 图像匹配Word文件下载.docx

上传人:b****4 文档编号:16418768 上传时间:2022-11-23 格式:DOCX 页数:12 大小:155.10KB
下载 相关 举报
数字图像处理 图像匹配Word文件下载.docx_第1页
第1页 / 共12页
数字图像处理 图像匹配Word文件下载.docx_第2页
第2页 / 共12页
数字图像处理 图像匹配Word文件下载.docx_第3页
第3页 / 共12页
数字图像处理 图像匹配Word文件下载.docx_第4页
第4页 / 共12页
数字图像处理 图像匹配Word文件下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数字图像处理 图像匹配Word文件下载.docx

《数字图像处理 图像匹配Word文件下载.docx》由会员分享,可在线阅读,更多相关《数字图像处理 图像匹配Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。

数字图像处理 图像匹配Word文件下载.docx

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).采用交互式程序对图像进行匹配。

提高要求:

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

开发环境:

MATLAB7.1GUI:

MATLAB7.1自带的GUI界面编辑器

通过分析题目的基本要求,我将此软件的基本功能主要分为2大模块:

一个是数字图像处理模块,另一个是数字图像匹配模块。

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

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

输入/输出形式:

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

输入形式:

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

输出形式:

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

测试数据要求:

任何一幅JPG格式或BMP格式的数字图像。

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开始的.我们常用的显示器的像素坐标就是如此.

2.2数字图像匹配算法设计

在此软件中我采用了两种图像匹配算法:

①基于灰度的模板匹配算法②基于灰度的快速匹配算法。

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

2.2.1基于灰度的摸版匹配算法

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

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

设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)

下图给出了模板匹配的示意图,其中假设源图像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的图像,共可得到H2/k2个R-块.对于R-块Ri,S(Ri)表示Ri所包含像素的灰度值之和.

定义1.R-块(如图2-2中的R5所示)与其周围8个相邻的R-块(如图2中的R1,R2,R3,R4,R6,R7,R8,R9所示)组成R-块的邻域.将R-块的邻域分为4个部分,分别为D1,D2,D3,D4(如图2-2所示),称为R-块的D-邻域.R-块R5分别属于4个D-邻域,即D1=R1∪R2∪R4∪R5;

D2=R4∪R5∪R7∪R8;

D3=R5∪R6∪R8∪R9;

D4=R2∪R3∪R5∪R6.

对于每个D-邻域中的4个R-块,可规定一个顺序(如图2-3中所取的逆时针序).对Dj所包含的4个R-块的像素灰度值之和S(Rj1),S(Rj2),S(Rj3),S(Rj4)做排序,显然共有4!

=24种可能,每种排序结果可以用5位的二进制编码来表示,记作P(Dj)∈{00000,00001,…,10111}.

图2-2划分

2-3划分后的区域

将R-块Ri所在的4个D-块的P(Dj)做位串拼接,得到F(Ri)=P(D1)P(D2)P(D3)P(D4),即

F(Ri)=(P(D1)<

<

15)+(P(D2)<

10)+(P(D3)<

5)+P(D4).

其中,P(Dj)为Ri所在的邻域Dj的二进编码,<

为移位操作,其后面的数字表示移位位数.

定义2.F(Ri)为Ri块的20位二进制编码特征表示,简称Ri块的编码.

对一幅图像,提取它所有Ri块的编码,需要计算各个R-块的灰度值和S(Ri)、计算各个D-邻域的编码P(Dj)、计算各个Ri块的编码F(Ri)等共3步.图像最外一圈的Ri块的编码无定义.对于边长为H的图像,上述运算的时间复杂度为O(H2).

显然,F(Ri)表示R-块Ri的灰度与相邻8个R-块灰度的分布(序)关系,体现了图像灰度的相对值,因此对整体灰度值的变化具有相对的稳定性.通过对R-块尺寸k的选择,可以改变图像处理粒度的大小,以改变抵抗不同频率噪声的能力.

3.设计方案

3.1设计思想

定义3.在待搜索图S上以模板T的长、宽为横向、纵向步长,从S的左上角开始按模板T的大小划分S得到的子图称为限制块,记作Ci,j,其中(i,j)为限制块左上角顶点在搜索图S上的坐标.这样划分后,如果在搜索图S的右侧或底部有剩余部分,则相应地从S的最右侧开始向左,或从最底部开始向上划分出一列或一行限制块,使得全部限制块可以完全覆盖搜索图S.这样得到的图S上的限制块的数量为M2/H2。

定义4.限制块Ci,j与模板T都是尺寸为N×

N的图像,各自的R-块特征集合用(N/k)阶方阵A(Ci,j)与A(T)表示,称为特征编码矩阵,这里k为R-块的边长.在Ci,j与T作特征比较时,即比较A(T)每一个元素与A(Ci,j)中每一个元素是否相等,如果相等,则记下矩阵A(Ci,j)中的行号、列号.

3.2设计流程

设计流程图如图所示。

设计方案图

4.应用程序设计

4.1程序代码

4.1.1读取原图像过程

clear;

clc;

reference_img=imread('

D:

\optical1.jpg'

);

%提取原始图片作为基准

target_img=imread('

\optical2.jpg'

%要求进行匹配的图像

subplot(2,3,1);

%显示原始图像

imshow(reference_img);

title('

原始图像'

subplot(2,3,2);

%显示进行匹配的图像

imshow(target_img);

目标图像'

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);

fori=1:

Ix

forj=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_integer));

%双线性插值

end

ifresult_img(i,j)==0%把没有进行插值图像和原始图像进行组合

result_img2(i,j)=reference_img(i,j);

else

result_img2(i,j)=result_img(i,j);

ifresult_img3(i,j)==0%把插值后图像和原始图像进行组合

result_img4(i,j)=reference_img(i,j);

result_img4(i,j)=result_img3(i,j);

end

4.1.5输出匹配后图像

subplot(2,3,3);

%显示未插值图像匹配

imshow(result_img,[]);

未插值图像匹配'

subplot(2,3,4);

%显示未插值图像匹配组合

imshow(result_img2,[]);

未插值图像匹配组合'

subplot(2,3,5);

%显示双线性插值后图像匹配

imshow(result_img3,[]);

双线性插值后图像匹配'

subplot(2,3,6);

%显示双线性插值后图像匹配组合

imshow(result_img4,[]);

双线性插值后图像匹配组合'

4.2界面设计

本程序采用交互式来演示图像匹配过程,GUI采用MATLAB7.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.我通过图像匹配特征匹配算法对目标图像进行匹配组合处理,在这个过程中我用到了MATLAB7.1编程环境,对程序进行设计和编写;

通过对原图像提取的特征点来处理目标图像。

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

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

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

4.我通过图像匹配特征匹配算法对目标图像进行匹配组合处理,在这个过程中我用到了MATLAB7.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.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1