基于matlab的图像分析

基于matlab的图像分析
基于matlab的图像分析

目录

1 引言 (1)

2 基于MATLAB的FFT算法实现 (2)

2.1系统总体流程图 (2)

2.2 FFT运算规律及编程思想 (2)

2.2.1图像信号的采集 (2)

2.2.2 DIT-FFT算法的基本原理 (3)

2.2.3 FFT算法的运算规律及编程思想 (5)

3 Matlab程序实现 (7)

3.1程序运行结果 (7)

3.2对比结果分析 (8)

4 系统人机对话界面 (9)

4.1 GUI简介 (9)

4.2 界面设计 (9)

4.3 运行调试 (10)

5 Matlab软件简介 (11)

6 心得体会 (12)

参考文献 (13)

附录Ⅰ (14)

附录Ⅱ (18)

1 引言

MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks 公司出品的商数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用MATLAB 函数集)扩展了MATLAB 环境,以解决这些应用领域内特定类型的问题。它以矩阵运算为基础,把计算、可视化、程序设计融合在一个简单易用的交互式工作环境中,是一款数据分析和处理功能都非常强大的工程适用软件。它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数据滤波、傅立叶变换、时域和频域分析、声音回放以及各种图的呈现等,它的信号处理与分析工具箱位语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便的完成语音信号的处理和分析以及信号的可视化。数字信号处理是MATLAB重要应用的领域之一。

对于有限长序列x(n),若要求其N点的傅里叶变换(DFT)需要经过2N次复数乘法运算和N*(N-1)次复数加法运算。随着N的增加,运算量将急剧增加,而在实际问题中,N往往是较大的,如当N=1024时,完成复数乘法和复数加法的次数分别为百万以上,无论是用通用计算机还是用DSP芯片,都需要消耗大量的时间和机器内存,不能满足实时的要求。因此,DFT的这种运算只能进行理论上的计算,不适合对实时处理要求高的场合。因此,研究作为DSP的快速算法的FFT是相当必要的,快速傅里叶变换(FFT)是为提高DFT运算速度而采用的一种算法,快速算法的种类很多,而且目前仍在改进和提高,它是根据离散傅里叶变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。基于本学期所学的DIT-FFT的运算规律和编程思想以及Matlab的学习和使用,本课设要求在Matlab环境下编写基2 DIT-FFT算法实现对离散信号的快速傅里叶变换,再与Matlab软件自带的FFT函数实现对离散信号的傅里叶变换进行比较,如果得到的频谱相同,那么我们编写的程序就是正确的。本次课程设计是实现对选定图片进行FFT计算、还原(IFFT计算),并与系统FFT函数做对比,进行分析。如果有能力可以选做系统人机对话界面。用GUI界面完成人机交互方便使用的。本课程设计主要是对数字信号的分析。

2 基于MATLAB的FFT算法实现

2.1系统总体流程图

本设计要求找到一张明暗对比较大的图片;在Matlab环境下编写基FFT算法;利用自己编写的算法对已选择的图片信号进行计算,并显示出计算的结果,将计算的结果与Matlab数字信号处理工具箱中自带的fft函数进行对比研究,验证自编算法的正确性。系统的总体设计流程图如图2-1所示:

图2-1 系统的总体设计流程图

2.2 FFT运算规律及编程思想

2.2.1图像信号的采集

图像信号最好采用明暗对比比较大的灰度图像进行分析,这样实验结果对比比较明显。

在Matlab中用语句:

[filename, pathname]=uigetfile({'*.jpg;*.tif;*.bmp;*.gif' },'File Selector');

image=imread(strcat(pathname,filename));

用于读取图片的信号,Matlab 图像分析支持多种格式的图像信号,用上述语句时,在Matlab 中分析图像的时候可以系统自动检索所需分析的图片。

语句:image=rgb2gray(image);可以对图像进行灰度处理。 当我们要将图片显示出来的的时候只需要用语句: imshow(image);

本次课程设计就是分析灰度图像。通过用两种不同的方法对灰度图像的FFT 计算和IFFT 计算,来得到我们想要的结果。

采集到图像信号之后,就可以对图像信号进行分析和计算了。

2.2.2 DIT-FFT 算法的基本原理

快速傅里叶变换(FFT )是为提高DFT 运算速度而采用的一种算法。 对一个有限长度序列x(n)的N 点的DFT 为:

所以,要求N 点的DFT,需要N2次的复数乘法运算,N*(N-1)次复数乘法运算算。随着N 的增加,运算量将急剧增加,而在实际问题中,N 往往是较大的,如当N=1024时,完成复数乘法和复数加法的次数分别为百万以上,无论是用通用计算机还是用DSP 芯片,都需要消耗大量的时间,不能满足实时的要求,,不适合于对实时处理要求高的场合。为了能实时处理DFT,要想减少DFT 的运算量可以有两个途径:第一是降N ,N 的值减小了,运算量就减少了;第二是利用旋转因子的周期性,对称性和可约性。利用这两个途径实现DFT 的快速傅里叶变换(FFT ),FFT 算法基本上可分为按时间抽取的FFT 算法(DIT-FFT )和按频率抽取的FFT 算法(DIF-FFT )。

旋转因子的性质: (1)周期性 (2)共轭对称性 (3)可约性

本次课设要求用用基2的按时间抽取的FFT 算法(DIT-FFT )实现FFT 功能,设序列x(n)的长度为N ,且N 满足N=2M,M 为正整数。若N 不能满足上述关系,可以将序列x(n)补零实现。按时间抽取基2-FFT 算法的基本思路是将N 点序列按时间下标的奇偶分为两个N/2点序列,计算这两个N/2点序列的N/2点DFT ,计算量可减小约一半;每一个N/2点序列按照同样的划分原则,可以划分为两个

)

()(N n k N n N k N kn N W W W ++==*)(*)(][][n k N n k N kn N W W W --==m

kn m

N kn N mkn mN kn N W W W W //,

==

N/4点序列,最后,将原序列划分为多个2点序列,将计算量大大降低。

按时间下标的奇偶将N 点x(n)分别抽取组成两个N/2点序列,分别记为x1(n)和x2(n),将x(n)的DFT 转化为x1(n)和x2(n)的DFT 的计算。

利用旋转因子的可约性,即:

用蝶形运算可表示为如图2-2所示:

以此类推,还可以把x1(n)和x2(n)按n 值得奇偶分为两个序列,这样就达到了降N 得目的,从而减少了运算量。FFT 对DFT 的数学运算量改进:

直接采用DFT 进行计算,运算量为N2次复数乘法和N*(N-1)次复数乘法。 当采用M 次FFT 时,由N=2M 求得M=logN ,运算流图有M 级蝶形,每一级都由N/2个蝶形运算构成,这样每一级蝶形运算都需要N/2次复数乘法和N 次复数加法。M 级运算共需要复数乘法次数为C=N/2*M,复数加法次数为C=N*M 。

()()()()()()(

)()()(

)1

N

021

N

N

0,2,4...1,3,5 (112)

2

212N

N

0,10,1112

2

2121

N

2

N

0,10,1

221N nk

n N N nk nk n n N N r k rk r r N N r k rk r r X k x n W x n W

x n W

x r W x r W x r W

x r W -=--==--+==--+====

+

=

+

+=

+

∑∑∑∑∑∑∑2j

2j 222

2

e

e

rk N rk

rk

rk

N

N N

W W π

π--===()()()1122

122

2

12,01N N rk k rk

N N N r r k N X k x r W W x r W X k W X k N --===+=+≤≤-∑∑()(k)图2-2 DIT-FFT 蝶形运算流图符号

12

,

,1,0,)()12()()2(21-=?

??=+=N r r x r x r x r x

当N 值较大时,FFT 减少运算量的特点表现的越明显。

2.2.3 FFT 算法的运算规律及编程思想

为了编写DIT-FFT 算法的运算程序,首先要分析其运算规律,总结编程思想并绘出程序框图。

1. 原位计算

对M

N 2=点的FFT 共进行M 级运算,每级由N/2个蝶形运算组成。在同一级中,每个蝶的输入数据只对本蝶有用,且输出节点与输入节点在同一水平线上,这就意味着每算完一个蝶后,所得数据可立即存入原输入数据所占用的数组元素(存储单元),这种原位(址)计算的方法可节省大量内存。

2. 蝶形运算

实现FFT 运算的核心是蝶形运算,找出蝶形运算的规律是编程的基础。蝶形运算是分级进行的;每级的蝶形运算可以按旋转因子的指数大小排序进行;如果指数大小一样则可从上往下依次蝶算。对M

N 2=点的FFT 共有M 级运算,用L 表示从左到右的运算级数(L=1,2,…,M )。第L 级共有12-=L B 个不同指数的旋转因子,用R 表示这些不同指数旋转因子从上到下的顺序(R=0,1,…,B-1)。第R 个旋转因子的指数R P L

M -=2

,旋转因子指数为P 的第一个蝶的第一节点标号

k 从R 开始,由于本级中旋转因子指数相同的蝶共有L

M -2个,且这些蝶的相邻间

距为L 2,故旋转因子指数为P 的最后一个蝶的第一节点标号k 为:

R N R L L L M +-=+?--22)12(,本级中各蝶的第二个节点与第一个节点都相距

B 点。

应用原位计算,蝶形运算可表示成如下形式:

L A (J)= 1-L A (J)+ 1-L A (J+B)* P

N W

L A (J+B)= 1-L A (J)-1-L A (J+B)* P

N W

总结上述运算规律,可采用如下运算方法进行DIT-FFT 运算。首先读入数据,根据数据长度确定运算级数M ,运算总点数M

N 2=,不足补0处理。然后对读入数据进行数据倒序操作。数据倒序后从第1级开始逐级进行,共进行M 级运算。在进行第L 级运算时,先算出该级不同旋转因子的个数1

2-=L B (也是该级中各个蝶形运算两输入数据的间距),再从R=0开始按序计算,直到R=B-1结束。每个R 对应的旋转因子指数R P L

M -=2

,旋转因子指数相同的蝶从上往下依次逐个运算,

各个蝶的第一节点标号k 都是从R 开始,以L

2为步长,到R N L

+-2

(可简取极值

N-2)结束。考虑到蝶形运算有两个输出,且都要用到本级的两个输入数据,故第一个输出计算完毕后,输出数据不能立即存入输入地址,要等到第二个输出计算调用输入数据完毕后才能覆盖。这样数据倒序后的运算可用三重循环程序实现。整个蝶形运算流程图如图2-3所示:

图2-3 整个蝶形运算流程图

3 Matlab程序实现

3.1程序运行结果

用图片cj.jpg作为例子,运行调试程序。

图片cj.jpg如图3-1所示:

图3-1 原图像

程序运行开始的时候可以先建立一个M_file。生成M_file方法为:File->New->M-File,或者单击Matlab主界面的空白文档。如图3-2所示:

图3-2 生成M文件

将自行编写的程序写到文件中,然后保存,运行,程序执行之后会自动查询所要处理的图片。程序开始时要输入的窗口如图3-2所示:

图3-2 开始输入程序的界面

将已经编号的程序写到图3-2所示的窗口中保存之后就可以运行了。用自建的FFT和IFFT运行的结果如图3-3所示:

图3-3 程序的运行结果

3.2对比结果分析

如图3-3可以看出自编的FFT算法和系统自带的FFT算法运行结果有所不同,具体体现在三个方面。

一是:自建的FFT处理后的图片的大小发生了变化,宽度和内置的FFT处理后的结果相同;高度变小了。

二是:图像的亮度发生了变化,自建的FFT处理后的图片的亮度比系统自带的FFT处理后的图像的亮度高。

三是:程序的运行时间不同。自建的FFT算法运行的时间比系统自带的FFT 算法运行的时间要长。

但是不论何种算法实现FFT,它们的进行IFFT后得出的结果相同,和原图

片一样。

4 系统人机对话界面

4.1 GUI简介

图形用户界面(GUI),是一种提供人机交互的工具和方法。GUI是包含图形对象,如窗口、图标、菜单和文本等图文并茂的用户界面。

4.2 界面设计

用MATLAB图形用户界面开发环境设计GUI点的一般步骤是:

1.进行界面设计。

2.设计控件属性。

3.进行M语言编程。

以本设计要求为例介绍。

第一步,该选择本图形用户界面需要的控件:

七个推按钮(Push button),其中六个用来运行所要显示的图片,第七个用来退出程序。

六个轴对象(axes)用来显示原图像,两种不同FFT处理后的图片以及进行IFFT后的图像。

完成人机设计界面如图4-1所示:

图4-1 人机界面设计图

第二步,设置控件属性:

双击组件可以设置文本框,推按钮的属性,如显示大小,名称和默认值等。

第三步,编写回调函数。

组件事件的发生是通过回调函数进行工作的。控件设置完成后保存,然后运行GUI(操作为ctrl+T),就会进入editor窗口,加入各个控件功能的函数代码。

完成后保存即可。

第四步,运行GUI。

运行editor窗口的程序后,会弹出已经激活的人机对话界面。

系统人机对话界面如图4-2所示。

图4-2 系统的人机对话界面

4.3 运行调试

运行GUI,已经弹出图4-2的系统人机对话界面,根据提示分别点击T1,T2,T3,T4,T5,T6可以分别运行出原图像,自编FFT处理后的图像,自编IFFT 后的图像,和原图像,内置FFT处理后的图像,内置IFFT处理后的图像。运行结果如图4-3所示。如果运行结束,可以通过点击“EXIT”推按钮退出该人机对话界面,返回Matlab。

图4-3 运行结果显示

5 Matlab软件简介

MATLAB产生的历史背景20世纪70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN 子程序库。EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库。在当时,这两个程序库代表矩阵运算的最高水平。在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。1983年春天,Cleve Moler到Stanford大学讲学,MATLAB深深地吸引了工程师John Little。John Little敏锐地觉察到MATLAB在工程领域的广阔前景。同年,他和Cleve Moler、Sieve Bangert一起,用C语言开发了第二代专业版。这一代的MATLAB语言同时具备了数值计算和数据图示化的功能。1984年,Cleve Moler和John Lithe成立了MathWorks公司,正式把MATLAB推向市场,并继续进行MATLAB的研究和开发。在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。一类是数值计算型软件,如MATLAB、Xmath、Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,如Mathematica、Maple等,这类软件以符号计算见长,能给出解析解和任意精度解,其缺点是处理大量数据时效率较低。

MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算、文字处理、可视化建模和实时控制能力,开发了适合多学科、多部门要求的新一代科技应用软件MATLAB。经过多年的国际竞争,MATLAB 已经占据了数值型软件市场的主导地位。在MATLAB进入市场前,国际上的许多应用软件包都是直接以FORTRAN和C语言等编程语言开发的。这种软件的缺点是使用面窄、接口简陋、程序结构不开放以及没有标准的基库,很难适应各学科的最新发展,因而很难推广。MATLAB 的出现,为各国科学家开发学科软件提供了新的基础。在MATLAB问世不久的20世纪80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB 上重建。时至今日,经过Math Works公司的不断完善,MATLAB已经发展成为适合多学科、多种工作平台的功能强劲的大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。

6 心得体会

本次实习的主要内容是通过用Matlab实现FFT的设计,可以实现对一张图片进行FFT运算和IFFT运算并且输出结果。把自己编写的FFT算法与Matlab 自带FFT算法进行比较。

在之前数字信号处理的学习以及完成实验的过程中,已经使用过Matlab,对其有了一些基础的了解和认识,通过这次的课程设计使我进一步了解了图像信号的分析方法,以及其中产生信号和绘制信号的基本命令和一些基础编程语言。让我感受到只有在了解课本知识的前提下,才能更好的应用这个工具,并且熟练的应用Matlab也可以很好的加深我对课程的理解,方便我的思维。这次课程设计使我了解了Matlab的使用方法,提高了自己的分析和动手实践能力。同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助。

这次的课程设计是对本学期所学知识的一次重要巩固,使得在课堂上掌握的知识得到了真正的运用。在学习的过程中和同学讨论,更明白了理论知识与实践的联系。书到用时方恨少,有些知识学会是一回事,掌握是一回事,但应用起来,确实不是那么简单的,需要很多知识的融会贯通。

程序运行调试初期,曾经多次出现错误、不能产生图形等问题,但在我翻阅资料认真改正及老师同学的帮助下基本功能还是完成了,经过1个星期的上机实习,程序已得到一些完善,能完成基本的要求的功能。最后经过努力,又深入学习了图形用户界面(GUI),完成了选做要求的人机对话界面。

学习就是一个了解,疑惑,进而解惑的过程,这次实习就是提供了这样一个发现自己知识漏洞,与同学老师探讨进行解惑的的机会。

通过这次课程设计实习,我更深刻的了解了Matlab的运用,重新复习了FFT 中的重要的序列倒序和蝶形变换的程序,对课本上的知识有了更深的理解,使我对数字信号处理有了系统的认知。

在这里特别感谢魏老师和李老师,他们给了我们很大的发挥空间,让我们真正自己动手真正掌握了知识,感谢他们细心指导。也非常感谢我的同学,他们解开了我在实习中出现的诸多知识死角,谢谢大家!

参考文献

[1]范寿康DSP 技术与DSP芯片.北京:电子工业出版社

[2]程佩青.数字信号处理教程.北京:清华大学出版社出版,2001

[3]高西全丁玉美等.数字信号处理.北京:电子工业出版社,2009

[4] 李勇徐震.MA TLAB辅助现代工程数字信号处理.西安电子科技大学出版社

[5] 陈杰.Matlab宝典.电子工业出版社

[6] 苏金明张莲花刘波.MATLAB工具箱应用,电子工业出版社

附录Ⅰ

function image_process_FFT()

[filename, pathname]=uigetfile({'*.jpg;*.tif;*.bmp;*.gif' },'File Selector'); image=imread(strcat(pathname,filename)); %获取一个图像信号

if ndims(image)==3

image=rgb2gray(image);

end

scrsz=get(0,'ScreenSize');

figure('position',[0 0 scrsz(3)-1 scrsz(4)]);

set(gcf,'Name','快速傅里叶变换');

subplot(2,3,1);

imshow(image);

title('原始图像');

subplot(2,3,4);

imshow(image);

title('原始图像');

[r,c]=size(image);

%补0至最接近的2的整数次幂

array=image;

t=log2(r);

t1=floor(t);

t2=ceil(t);

if t1~=t2

array(2^t2,c)=0;

end

[r1,c1]=size(array);

t=log2(c1);

t3=floor(t);

t4=ceil(t);

if t3~=t4

array(r1,2^t4)=0;

end

[r1,c1]=size(array);

n=r1/2;

data_col=zeros(1,n,'double'); %按列方向计算时用到的for m=1:n

data_col(m)=exp(-1i*2*pi*(m-1)/r1);

end

n=c1/2;

data_row=zeros(1,n,'double'); %按行方向计算时用到for m=1:n

data_row(m)=exp(-1i*2*pi*(m-1)/r1);

end

array=transform_fft2(array);

Ft=fftshift(array);

S1=log(1+abs(Ft));

subplot(2,3,2);

imshow(S1,[]);

title('自建FFT2函数结果');

array=transform_ifft2(array);

array=abs(array);

array=array(1:r,1:c);

subplot(2,3,3);

imshow(array,[]);

title('自建IFFT2结果');

F=fft2(image);

FC=fftshift(F);

S=log(1+abs(FC));

subplot(2,3,5)

imshow(S,[]);

title('内置FFT2结果');

array=ifft2(F);

array=round(abs(array));

subplot(2,3,6);

imshow(array,[]);

title('内置IFFT2结果');

return

function array=transform_fft2(array)

array=double(array);

[r1 c1]=size(array);

for j=1:r1

array(j,:)=transform_fft(array(j,:));

end

for j=1:c1

array(:,j)=transform_fft((array(:,j)));

end

N=length(array);

n=N/2;

w=zeros(1,n,'double');

for m=1:n

w(m)=exp(-1i*2*pi*(m-1)/N);

end

p=log2(N);

array1=zeros(1,N,'double');

for q=1:p

t1=2^(q-1);

t2=2^(p-1);

for k=0:(t2/t1-1)

for j=0:(t1-1)

if mod(q,2)==1

data1=array(k*t1+j+1);

data2=array(k*t1+j+t2+1);

array1(k*t1*2+j+1)=data1+data2;

array1(k*t1*2+j+t1+1)=(data1-data2)*w(k*t1+1);

else

data1=array1(k*t1+j+1);

data2=array1(k*t1+j+t2+1);

array(k*t1*2+j+1)=data1+data2;

array(k*t1*2+j+t1+1)=(data1-data2)*w(k*t1+1);

end

end

end

end

if mod(p,2)==1

return

else

array1=array;

return

end

function array=transform_ifft2(array) array=conj(array);

[r1,c1]=size(array);

for i=1:r1

array(i,:)=transform_fft(array(i,:)); end

for i=1:c1

array(:,i)=transform_fft(array(:,i)); end

array=array/(r1*c1);

附录Ⅱ

function varargout = image_fft(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @image_fft_OpeningFcn, ...

'gui_OutputFcn', @image_fft_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:});

end

function image_fft_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

guidata(hObject, handles);

function varargout = image_fft_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output;

function pushbutton1_Callback(hObject, eventdata, handles)

image=imread('cj.jpg');

if ndims(image)==3

image=rgb2gray(image);

end

axes(handles.one_axes)

imshow(image);

title('原始图像');

function pushbutton2_Callback(hObject, eventdata, handles)

image=imread('cj.jpg');

if ndims(image)==3

image=rgb2gray(image);

end

axes(handles.two_axes)

[r,c]=size(image);

array=image;

t=log2(r);

t1=floor(t);

t2=ceil(t);

if t1~=t2

array(2^t2,c)=0;

end

[r1,c1]=size(array);

t=log2(c1);

t3=floor(t);

t4=ceil(t);

if t3~=t4

array(r1,2^t4)=0;

end

[r1,c1]=size(array);

n=r1/2;

data_col=zeros(1,n,'double'); %按列方向计算时用到的for m=1:n

data_col(m)=exp(-1i*2*pi*(m-1)/r1);

end

n=c1/2;

data_row=zeros(1,n,'double'); %按行方向计算时用到for m=1:n

data_row(m)=exp(-1i*2*pi*(m-1)/r1);

end

%正变换

array=transform_fft2(array);

Ft=fftshift(array);

S1=log(1+abs(Ft));

imshow(S1,[]);

title('自建FFT2函数结果');

基于matlab的图像识别与匹配

基于matlab的图像识别与匹配 摘要 图像的识别与匹配是立体视觉的一个重要分支,该项技术被广泛应用在航空测绘,星球探测机器人导航以及三维重建等领域。 本文意在熟练运用图像的识别与匹配的方法,为此本文使用一个包装袋并对上面的数字进行识别与匹配。首先在包装袋上提取出来要用的数字,然后提取出该数字与包装袋上的特征点,用SIFT方法对两幅图进行识别与匹配,最终得到对应匹配数字的匹配点。仿真结果表明,该方法能够把给定数字与包装袋上的相同数字进行识别与匹配,得到了良好的实验结果,基本完成了识别与匹配的任务。

1 研究内容 图像识别中的模式识别是一种从大量信息和数据出发,利用计算机和数学推理的方法对形状、模式、曲线、数字、字符格式和图形自动完成识别、评价的过程。 图形辨别是图像识别技术的一个重要分支,图形辨别指通过对图形的图像采用特定算法,从而辨别图形或者数字,通过特征点检测,精确定位特征点,通过将模板与图形或数字匹配,根据匹配结果进行辨别。 2 研究意义 数字图像处理在各个领域都有着非常重要的应用,随着数字时代的到来,视频领域的数字化也必将到来,视频图像处理技术也将会发生日新月异的变化。在多媒体技术的各个领域中,视频处理技术占有非常重要的地位,被广泛的使用于农业,智能交通,汽车电子,网络多媒体通信,实时监控系统等诸多方面。因此,现今对技术领域的研究已日趋活跃和繁荣。而图像识别也同样有着更重要的作用。 3 设计原理 3.1 算法选择 Harris 角点检测器对于图像尺度变化非常敏感,这在很大程度上限制了它的应用范围。对于仅存在平移、旋转以及很小尺度变换的图像,基于Harris 特征点的方法都可以得到准确的配准结果,但是对于存在大尺度变换的图像,这一类方法将无法保证正确的配准和拼接。后来,研究人员相继提出了具有尺度不变性的特征点检测方法,具有仿射不变性的特征点检测方法,局部不变性的特征检测方法等大量的基于不变量技术的特征检测方法。 David.Lowe 于2004年在上述算法的基础上,总结了现有的基于不变量技术的特征检测方法,正式提出了一种基于尺度空间的,对图像平移、旋转、缩放、甚至仿射变换保持不变性的图像局部特征,以及基于该特征的描述符。并将这种方法命名为尺度不变特征变换(Scale Invariant Feature Transform),以下简称SIFT 算法。SIFT 算法首先在尺度空间进行特征检测,并确定特征点的位置和特征点所处的尺度,然后使用特征点邻域梯度的主方向作为该特征点的方向特征,以实现算子对尺度和方向的无关性。利用SIFT 算法从图像中提取出的特征可用于同一个物体或场景的可靠匹配,对图像尺度和旋转具有不变性,对光照变化、

基于MATLAB的图像处理的基本运算

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于MATLAB的图像处理的基本运算 初始条件: 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)能够对图像亮度和对比度变化调整,并比较结果 (2)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存,比较几 种插值的效果 (3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 (4)对图像加入各种噪声,比较效果。 时间安排: 指导教师签名:年月日 系主任(或责任教师)签名:年月日 目录 摘要.......................................................................................................................... 错误!未定义书签。 1 MATLAB简介 ........................................................................................................ 错误!未定义书签。2图像选择及变换................................................................................................... 错误!未定义书签。 2.1 原始图像选择读取....................................................................................... 错误!未定义书签。 2.1.1 原理图的读入与基本变换 .................................................................... 错误!未定义书签。

基于MATLAB图像处理报告

基于M A T L A B图像处理报告一、设计题目 图片叠加。 二、设计要求 将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。 三、设计方案 、设计思路 利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素进行线性运算,利用灰度变换的算法使图片达到预期的效果。 、软件介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB 也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。

主成分分析报告matlab程序

Matlab编程实现主成分分析 .程序结构及函数作用 在软件Matlab中实现主成分分析可以采取两种方式实现:一是通过编程来实现;二是直接调用Matlab种自带程序实现。下面主要主要介绍利用Matlab的矩阵计算功能编程实现主成分分析。 1程序结构 2函数作用 Cwstd.m——用总和标准化法标准化矩阵 Cwfac.m——计算相关系数矩阵;计算特征值和特征向量;对主成分进行排序;计算各特征值贡献率;挑选主成分(累计贡献率大于85%),输出主成分个数;计算主成分载荷 Cwscore.m——计算各主成分得分、综合得分并排序 Cwprint.m——读入数据文件;调用以上三个函数并输出结果

3.源程序 3.1 cwstd.m总和标准化法标准化矩阵 %cwstd.m,用总和标准化法标准化矩阵 function std=cwstd(vector) cwsum=sum(vector,1); %对列求和 [a,b]=size(vector); %矩阵大小,a为行数,b为列数 for i=1:a for j=1:b std(i,j)= vector(i,j)/cwsum(j); end end 3.2 cwfac.m计算相关系数矩阵 %cwfac.m function result=cwfac(vector); fprintf('相关系数矩阵:\n') std=CORRCOEF(vector) %计算相关系数矩阵 fprintf('特征向量(vec)及特征值(val):\n') [vec,val]=eig(std) %求特征值(val)及特征向量(vec) newval=diag(val) ; [y,i]=sort(newval) ; %对特征根进行排序,y为排序结果,i为索引fprintf('特征根排序:\n') for z=1:length(y) newy(z)=y(length(y)+1-z); end fprintf('%g\n',newy) rate=y/sum(y); fprintf('\n贡献率:\n') newrate=newy/sum(newy) sumrate=0; newi=[]; for k=length(y):-1:1 sumrate=sumrate+rate(k); newi(length(y)+1-k)=i(k); if sumrate>0.85 break; end end %记下累积贡献率大85%的特征值的序号放入newi中fprintf('主成分数:%g\n\n',length(newi)); fprintf('主成分载荷:\n') for p=1:length(newi)

MATLAB仿真软件进行图像的输入、输出和格式变换

目录 摘要................................................................ I Abstract........................................................... II 1 图像文件格式及图像类型.. (1) 1.1 MATLAB支持的几种图像文件格式: (1) 1.2 matlab几种图像类型 (2) 2 图像的输入 (4) 3.图像的输入 (6) 3.1以图像形式输出(图像的显示) (6) 3.1.1索引图像的显示 (6) 3.1.2灰度图像的显示 (7) 3.1.3二值图像的显示 (8) 3.1.4 RGB图像的显示 (8) 3.2以图像文件的形式输出 (9) 4 图像的保存 (11) 5 图像类型转换 (13) 5.1 RGB转换成灰度图像 (13) 5.2 灰度图像转换为索引图像 (13) 5.3 灰度图像转化为二值图像 (14) 5.4 RGB图像转化为索引图像 (15) 6 课设总结 (16) 参考文献 (17) 附录 (18) 附录1:图像显示代码 (18) 附录2:图像转换代码 (19)

MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB 本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。 本次课程设计介就是Matlab环境下的一些最基本的图像处理操作,如读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、RGB图像和二值图像的相互转换。 关键词:MATLAB ;图像处理;图像转换

基于MATLAB的图像处理字母识别

数字图像处理 报告名称:字母识别 学院:信息工程与自动化学院专业:物联网工程 学号:201310410149 学生姓名:廖成武 指导教师:王剑 日期:2015年12月28日 教务处制

目录 字母识别 1.---------------------测试图像预处理及连通区域提取 2.---------------------样本库的建立采集feature 3.---------------------选择算法输入测试图像进行测试 4.---------------------总结

字母识别 1.imgPreProcess(联通区域提取)目录下 conn.m:连通区域提取分割(在原图的基础上进行了膨胀、腐蚀、膨胀的操作使截取的图像更加接近字母) %%提取数字的边界,生成新的图 clear; clc; f=imread('5.jpg'); f=imadjust(f,[0 1],[1 0]); SE=strel('square',5); %%膨胀、腐蚀、膨胀 A2=imdilate(f,SE); SE=strel('disk',3) f=imerode(A2,SE) SE=strel('square',3); f=imdilate(f,SE); gray_level=graythresh(f); f=im2bw(f,gray_level); [l,n]=bwlabel(f,8) %%8连接的连接分量标注 imshow(f) hold on for k=1:n %%分割字符子句 [r,c]=find(l==k); rbar=mean(r); cbar=mean(c); plot(cbar,rbar,'Marker','o','MarkerEdgeColor','g','MarkerFaceColor',' y','MarkerSize',10); % plot(cbar,rbar,'Marker','*','MarkerEdgecolor','w'); row=max(r)-min(r) col=max(c)-min(c) for i=1:row for j=1:col seg(i,j)=1; end

层次分析报告法及matlab程序

层次分析法建模 层次分析法(AHP-Analytic Hierachy process)---- 多目标决策方法 70 年代由美国运筹学家T·L·Satty提出的,是一种定性与定量分析相结合的多目标决策分析方法论。吸收利用行为科学的特点,是将决策者的经验判断给予量化,对目标(因素)结构复杂而且缺乏必要的数据情况下,採用此方法较为实用,是一种系统科学中,常用的一种系统分析方法,因而成为系统分析的数学工具之一。 传统的常用的研究自然科学和社会科学的方法有: 机理分析方法:利用经典的数学工具分析观察的因果关系; 统计分析方法:利用大量观测数据寻求统计规律,用随机数学方法描述(自然现象、 社会现象)现象的规律。 基本内容:(1)多目标决策问题举例AHP建模方法 (2)AHP建模方法基本步骤 (3)AHP建模方法基本算法 (3)AHP建模方法理论算法应用的若干问题。 参考书:1、姜启源,数学模型(第二版,第9章;第三版,第8章),高等教育出版社 2、程理民等,运筹学模型与方法教程,(第10章),清华大学出版社 3、《运筹学》编写组,运筹学(修订版),第11章,第7节,清华大学出版社 一、问题举例: A.大学毕业生就业选择问题 获得大学毕业学位的毕业生,“双向选择”时,用人单位与毕业生都有各自的选择标准和要求。就毕业生来说选择单位的标准和要求是多方面的,例如: ①能发挥自己的才干为国家作出较好贡献(即工作岗位适合发挥专长); ②工作收入较好(待遇好); ③生活环境好(大城市、气候等工作条件等); ④单位名声好(声誉-Reputation); ⑤工作环境好(人际关系和谐等) ⑥发展晋升(promote, promotion)机会多(如新单位或单位发展有后劲)等。 问题:现在有多个用人单位可供他选择,因此,他面临多种选择和决策,问题是他将如何作出决策和选择?——或者说他将用什么方法将可供选择的工作单位排序?

matlab图像输出设置

核心方法:通过图像设置命令,直接指定图片的大小。 具体操作: (1) 完成画图及相关设置(字体大小、线宽、图例大小也是正常尺寸), (2) 此时WindowStyle is 'docked',要改为normal,有两种操作: 1)在Figure properties——more properties中找到 Windowstyle,然后用鼠标改为normal; 2)或者直接用命令: set (gcf,'windowstyle','normal') (3) 根据排版要求,确定图片的宽高,例如320*320 像素,然后使用命令 set (gcf,'Position',[500,300,320,320]) set(gcf,'Units','centimeters','Position',[100 100 98]); % figure的position中的[left bottom width height] 是指figure的可画图的部分的左下角的坐标以及宽度和高度。 (4) 使用copy figure将图片输出到Word 1.figure; 2.hold on; 3.set(gca, 'YTick', [0 : 0.2 : 1]); 4.box off; 5.set(gca, 'YTickLabel', {'matlab1', 'matlab2', 'matlab3',... 6. 'matlab4', 'matlab5', 'matlab6'}) 1.hold on 2.xL=xlim; 3.yL=ylim; 4.plot(xL,[yL(2),yL(2)],'k',[xL(2),xL(2)],[yL(1),yL(2)],'k') 5.box off 6.axis([xL yL])

基于MATLAB的运动模糊图像处理

基于MATLAB的运动模糊图像处理 提醒: 我参考了文献里的书目和网上的一些代码而完成的,所以误差会比较大,目前对于从网上下载的模糊图片的处理效果很不好,这是我第一次上传自己完成的实验的文档,希望能帮到一些人吧。 研究目的 在交通系统、刑事取证中图像的关键信息至关重要,但是在交通、公安、银行、医学、工业监视、军事侦察和日常生活中常常由于摄像设备的光学系统的失真、调焦不准或相对运动等造成图像的模糊,使得信息的提取变得困难。但是相对于散焦模糊,运动模糊图像的复原在日常生活中更为普遍,比如高速运动的违规车辆的车牌辨识,快速运动的人群中识别出嫌疑人、公安刑事影像资料中提取证明或进行技术鉴定等等,这些日常生活中的重要应用都需要通过运动模糊图像复原技术来尽可能地去除失真,恢复图像的原来面目。因此对于运动模糊图像的复原技术研究更具有重要的现实意义。 图像复原原理 本文探讨了在无噪声的情况下任意方向的匀速直线运动模糊图像的复原问题,并在此基础上讨论了复原过程中对点扩散函数(PSF)的参数估计从而依据自动鉴别出的模糊方向和长度构造出最为近似的点扩散函数,构造相应的复原模型,实现运动模糊图像的复原;在模糊图像自动复原的基础上,根据恢复效果图的纹理特征和自动鉴别出的模糊长度和角度,人工调整模糊方向和长度参数,使得复原效果达到最佳。 实验过程 模糊方向的估计: 对图1(a)所示的原始图像‘车牌’图像做方向θ=30?,长度L=20像素的匀速直线运动模糊,得到退化图像如图1(b)

1(a) 1(b) j=imread('车牌1.jpg'); figure(1),imshow(j); title('原图像'); len=20; theta=30; psf=fspecial('motion',len,theta); j1=imfilter(j,psf,'circular','conv'); figure,imshow(j1); title('PSF 模糊图像'); 图1(c)和1(d)分别为原图像和模糊图像的二次傅里叶变化

MATLAB图像操作命令大全

MATLAB常用图像操作 一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:\w01.tif') 注:计算机E盘上要有w01相应的.tif文件。 2. imwrite imwrite函数用于写入图像文件,如:imwrite(a,'e:\w02.tif',’tif’) 3. imfinfo imfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\w01.tif') 二. 图像的显示 1. image image函数是MATLAB提供的最原始的图像显示函数(主要彩色显示图象),如:a=[1,2,3,4;4,5,6,7;8,9,10,11,12]; image(a); 2. imshow imshow函数用于灰度图像文件的显示,如: i=imread('e:\w01.tif'); imshow(i); 3. colorbar colorbar函数用显示图像的颜色条。 通常,颜色映象进行过调节,把数据从最小扩展到最大,也就是说整个颜色映象都用于绘图。有时也许想改变颜色使用的方法。函数caxis代表颜色轴,因为颜

色增加了另一个维数,它允许对数据范围的一个子集使用整个颜色映象或者对数据的整个集合只使用当前颜色映象的一部分。 [cmin,cmax]=caxis返回映射到颜色映象中第一和最后输入项的最小和最大的数据。它们通常被设成数据的最小值和最大值。比如,函数mesh(peaks) 会画出函数peaks的网格图,并把颜色轴caxis设为[-6.5466,8.0752],即Z的最小值和最大值。这些值之间的数据点,使用从颜色映象中经插值得到的颜色。如:i=imread('e:\w01.tif'); imshow(i); colorbar; 4 .figure figure函数用于设定图像显示窗口,如:figure(1); /figure(2); 5.imagesc(a); caxis([-3 8]) ; colorbar; 标尺标度从-3,到8 显示标度尺。 三. 图像的变换 1. fft2 fft2函数用于数字图像的二维傅立叶变换,如: i=imread('e:\w01.tif'); j=fft2(i); 2. ifft2 ifft2函数用于数字图像的二维傅立叶反变换,如: i=imread('e:\w01.tif'); j=fft2(i);

基于matlab的人脸识别算法(PCA)

3.基于matlab的人脸识别算法 3.1 问题描述 对于一幅图像可以看作一个由像素值组成的矩阵,也可以扩展开,看成一个矢量,如一幅 N*N 象素的图像可以视为长度为N2 的矢量,这样就认为这幅图像是位于N2 维空间中的一个点,这种图像的矢量表示就是原始的图像空间,但是这个空间仅是可以表示或者检测图像的许多个空间中的一个。不管子空间的具体形式如何,这种方法用于图像识别的基本思想都是一样的,首先选择一个合适的子空间,图像将被投影到这个子空间上,然后利用对图像的这种投影间的某种度量来确定图像间的相似度,最常见的就是各种距离度量。因此,本次试题采用PCA算法并利用GUI实现。 对同一个体进行多项观察时,必定涉及多个随机变量X1,X2,…,Xp,它们都是的相关性, 一时难以综合。这时就需要借助主成分分析来概括诸多信息的主要方面。我们希望有一个或几个较好的综合指标来概括信息,而且希望综合指标互相独立地各代表某一方面的性质。 任何一个度量指标的好坏除了可靠、真实之外,还必须能充分反映个体间的变异。如果有一项指标,不同个体的取值都大同小异,那么该指标不能用来区分不同的个体。由这一点来看,一项指标在个体间的变异越大越好。因此我们把“变异大”作为“好”的标准来寻求综合指标。3.1.1 主成分的一般定义 设有随机变量X1,X2,…,Xp,其样本均数记为,,…,,样本标准差记为S1,S2,…,Sp。首先作标准化变换,我们有如下的定义: (1) 若C1=a11x1+a12x2+ … +a1pxp,…,且使 Var(C1)最大,则称C1为第一主成分; (2) 若C2=a21x1+a22x2+…+a2pxp,…,(a21,a22,…,a2p)垂直于(a11,a12,…,a1p),且使Var(C2)最大,则称C2为第二主成分; (3) 类似地,可有第三、四、五…主成分,至多有p个。 3.1.2 主成分的性质 主成分C1,C2,…,Cp具有如下几个性质: (1) 主成分间互不相关,即对任意i和j,Ci 和Cj的相关系数 Corr(Ci,Cj)=0 i j (2) 组合系数(ai1,ai2,…,aip)构成的向量为单位向量, (3) 各主成分的方差是依次递减的,即 Var(C1)≥Var(C2)≥…≥Var(Cp)

基于matlab数字图像处理与识别系统含程序

目录 第一章绪论 (2) 1.1 研究背景 (2) 1.2 人脸图像识别的应用前景 (3) 1.3 本文研究的问题 (4) 1.4 识别系统构成 (4) 1.5 论文的内容及组织 (5) 第二章图像处理的Matlab实现 (6) 2.1 Matlab简介 (6) 2.2 数字图像处理及过程 (6) 2.2.1图像处理的基本操作 (6) 2.2.2图像类型的转换 (7) 2.2.3图像增强 (7) 2.2.4边缘检测 (8) 2.3图像处理功能的Matlab实现实例 (8) 2.4 本章小结 (11) 第三章人脸图像识别计算机系统 (11) 3.1 引言 (11) 3.2系统基本机构 (12) 3.3 人脸检测定位算法 (13) 3.4 人脸图像的预处理 (18) 3.4.1 仿真系统中实现的人脸图像预处理方法 (19) 第四章基于直方图的人脸识别实现 (21) 4.1识别理论 (21) 4.2 人脸识别的matlab实现 (21) 4.3 本章小结 (22) 第五章总结 (22) 致谢 (23) 参考文献 (24) 附录 (25)

第一章绪论 本章提出了本文的研究背景及应用前景。首先阐述了人脸图像识别意义;然后介绍了人脸图像识别研究中存在的问题;接着介绍了自动人脸识别系统的一般框架构成;最后简要地介绍了本文的主要工作和章节结构。 1.1 研究背景 自70年代以来.随着人工智能技术的兴起.以及人类视觉研究的进展.人们逐渐对人脸图像的机器识别投入很大的热情,并形成了一个人脸图像识别研究领域,.这一领域除了它的重大理论价值外,也极具实用价值。 在进行人工智能的研究中,人们一直想做的事情就是让机器具有像人类一样的思考能力,以及识别事物、处理事物的能力,因此从解剖学、心理学、行为感知学等各个角度来探求人类的思维机制、以及感知事物、处理事物的机制,并努力将这些机制用于实践,如各种智能机器人的研制。人脸图像的机器识别研究就是在这种背景下兴起的,因为人们发现许多对于人类而言可以轻易做到的事情,而让机器来实现却很难,如人脸图像的识别,语音识别,自然语言理解等。如果能够开发出具有像人类一样的机器识别机制,就能够逐步地了解人类是如何存储信息,并进行处理的,从而最终了解人类的思维机制。 同时,进行人脸图像识别研究也具有很大的使用价依。如同人的指纹一样,人脸也具有唯一性,也可用来鉴别一个人的身份。现在己有实用的计算机自动指纹识别系统面世,并在安检等部门得到应用,但还没有通用成熟的人脸自动识别系统出现。人脸图像的自动识别系统较之指纹识别系统、DNA鉴定等更具方便性,因为它取样方便,可以不接触目标就进行识别,从而开发研究的实际意义更大。并且与指纹图像不同的是,人脸图像受很多因素的干扰:人脸表情的多样性;以及外在的成像过程中的光照,图像尺寸,旋转,姿势变化等。使得同一个人,

matlab动力学分析程序详解

1 1.微分方程的定义 对于duffing 方程03 2 =++x x x ω ,先将方程写作??? --==3 1122 21x x x x x ω function dy=duffing(t,x) omega=1;%定义参数 f1=x(2); f2=-omega^2*x(1)-x(1)^3; dy=[f1;f2]; 2.微分方程的求解 function solve (tstop) tstop=500;%定义时间长度 y0=[0.01;0];%定义初始条件 [t,y]=ode45('duffing',tstop,y0,[]); function solve (tstop) step=0.01;%定义步长 y0=rand(1,2);%随机初始条件 tspan=[0:step:500];%定义时间范围 [t,y]=ode45('duffing',tspan,y0); 3.时间历程的绘制 时间历程横轴为t ,纵轴为y ,绘制时只取稳态部分。 plot(t,y(:,1));%绘制y 的时间历程 xlabel('t')%横轴为t ylabel('y')%纵轴为y grid;%显示网格线

2 axis([460 500 -Inf Inf])%图形显示范围设置 4.相图的绘制 相图的横轴为y ,纵轴为dy/dt ,绘制时也只取稳态部分。红色部分表示只取最后1000个点。 plot(y(end-1000:end ,1),y(end-1000:end ,2));%绘制y 的时间历程 xlabel('y')%横轴为y ylabel('dy/dt')%纵轴为dy/dt grid;%显示网格线 5.Poincare 映射的绘制 对于不同的系统,Poincare 截面的选取方法也不同 对于自治系统一般每过其对应线性系统的固有周期,截取一次 对于非自治系统,一般每过其激励的周期,截取一次 例程:duffing 方程03 2=++x x x ω 的poincare 映射 function poincare(tstop) global omega; omega=1; T=2*pi/omega;%线性系统的周期或激励的周期 step=T/100;%定义步长为T/100 y0=[0.01;0];%初始条件 tspan=[0:step:100*T];%定义时间范围 [t,y]=ode45('duffing',tspan,y0); for i=5000:100:10000%稳态过程每个周期取一个点 plot(y(i,1),y(i,2),'b.'); hold on;% 保留上一次的图形 end xlabel('y');ylabel('dy/dt');

基于MATLAB的人脸识别

基于MATLAB的人脸识别

————————————————————————————————作者: ————————————————————————————————日期:

图像识别 题目:基于MATLAB的人脸识别 院系:计算机科学与应用系 班级: 姓名: 学号: 日期:

设计题目基于MATLAB的人脸识别设 计技术参数 测试数据库图片10张训练数据库图片20张图片大小1024×768 特征向量提取阈值 1 设计要求综合运用本课程的理论知识,并利用MATLAB作为工具实现对人脸图片的预处理,运用PCA算法进行人脸特征提取,进而进行人脸匹配识别。 工作量 两周的课程设计时间,完成一份课程设计报告书,包括设计的任务书、基本原理、设计思路与设计的基本思想、设计体会以及相关的程序代码; 熟练掌握Matlab的使用。 工作计划第1-2天按要求查阅相关资料文献,确定人脸识别的总体设计思路; 第3-4天分析设计题目,理解人脸识别的原理同时寻求相关的实现算法;第5-8天编写程序代码,创建图片数据库,运用PCA算法进行特征提取并编写特征脸,上机进行调试; 第9-12天编写人脸识别程序,实现总体功能; 第13-14天整理思路,书写课程设计报告书。 参考资料1 黄文梅,熊佳林,杨勇编著.信号分析与处理——MATALB语言及应用.国防科技大学出版社,2000 2 钱同惠编著.数字信号处理.北京:机械工业出版社,2004 3 姚天任,江太辉编著.数字信号处理.第2版.武汉:武汉理工大学出版社,2000 4 谢平,林洪彬,王娜.信号处理原理及应用.机械工业出版社,2004 5刘敏,魏玲.Matlab.通信仿真与应用.国防工业出版社,2005 6 楼顺天.基于Matlab7.x 的系统分析与设计.西安电子科技大学,2002 7孙洪.数字信号处理.电子工业出版社,2001 目录 引言?错误!未定义书签。 1 人脸识别技术?错误!未定义书签。 1.1人脸识别的研究内容?错误!未定义书签。 1.1.1人脸检测(Face Detection)........... 错误!未定义书签。

基于Matlab的遥感图像处理

基于Matlab的遥感图像处理 测绘工程1161641014 鲍家顺 摘要文章运用Matlab软件对遥感影像的不足之处进行处理改善,详细介绍了处理方法和处理的原理,对处理结果进行了比对分析,并进行了边缘检测与特征提取,论证了处理方法的可行性。 关键词图像处理;matlab ;均衡化;规定化;色彩平衡;边缘检测;特征提取 在获取遥感图像过程中,由于多种因素的影响,会导致图像质量的退化,为了改善图像质量,突出遥感图像中的某些信息,提高图像的视觉效果,需要对图像进行各方面的处理,如分段线形拉伸,对数变换,直方图规定化、正态化,图像滤波,纹理分析及目标检测等。通过图像处理可以去除图像中的噪声,增强感兴趣的目标和周围背景图像间的反差,有选择地突出便于人或电脑分析的信息,抑制一些无用的信息,强调出图像的边缘,增强图像的识别方便性,从而进行边缘检测和特征提取。图像写出函数,显示图像函数有image ( ) 、inshow ( ) 等。[2 ]Matlab 图像处理工具箱处理工具提供了imhist () 函数来计算和显示图像的直方图, 提供了直方图均衡化的函数histeq() 、边缘检测函数edge ( ) 、腐蚀函数imerode () 、膨胀函数imdilate () 及二值图像转换函数im2bw () 等。文中实验数据采用的是桂林市区灰度遥感图像,宽度为1024 像素,高度为713 像素。 文件读入: 讲workspace切入到图片所在图层: Cd d:\ 读入图片: [x,cmap]=imread('m.PNG'); %将图片读入转换为矩阵 clf;imshow(x); %显示图片 原始图片

基于MATLAB的图像处理的基本运算

基于MATLAB的图像处理的基本运算

————————————————————————————————作者:————————————————————————————————日期:

课程设计任务书 学生姓名:专业班级: 指导教师:工作单位: 题目: 基于MATLAB的图像处理的基本运算 初始条件: 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求) (1)能够对图像亮度和对比度变化调整,并比较结果 (2)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的和旋转操作,并保存, 比较几种插值的效果 (3)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。 (4)对图像加入各种噪声,比较效果。 时间安排: 指导教师签名:年月日 系主任(或责任教师)签名:年月日

目录 摘要..................................................................................................................................................... - 2 -1 MATLAB简介 ................................................................................................................................... - 2 -2图像选择及变换.............................................................................................................................. - 3 -2.1 原始图像选择读取.................................................................................................................. - 3 - 2.1.1 原理图的读入与基本变换 ............................................................................................... - 3 - 2.1.2 程序源代码及调试结果 ................................................................................................... - 4 - 2.2 转换图像为灰阶图像.............................................................................................................. - 5 - 3 图像处理及代码程序 ..................................................................................................................... - 6 -3.1 图像亮度对比度调整.............................................................................................................. - 6 - 3.1.1 函数说明及参数选择....................................................................................................... - 6 - 3.1.2 源程序及运行结果........................................................................................................... - 6 -3.2 图像放大和缩小...................................................................................................................... - 7 - 3.2.1 函数说明及参数选择....................................................................................................... - 7 - 3.2.2 源程序及运行结果........................................................................................................... - 7 -3.3 图像任意角度的旋转.............................................................................................................. - 8 - 3.3.1 函数说明及参数旋转....................................................................................................... - 8 - 3.3.2 源程序及运行结果........................................................................................................... - 9 -3.4图像直方图统计和均衡........................................................................................................... - 9 - 3.4.1 函数说明及参数选择....................................................................................................... - 9 - 3.4.2 源程序及运行结果......................................................................................................... - 10 -3.5 图像加入噪声........................................................................................................................ - 11 - 3.5.1 函数说明及参数选择..................................................................................................... - 11 - 3.5.2 源程序及运行结果......................................................................................................... - 12 - 4 图像处理结果比较分析 ............................................................................................................... - 14 -4.1 调整对比度和亮度后图像比较 ............................................................................................ - 14 -4.2 图像放大缩小及旋转后比较 ................................................................................................ - 14 -4.3 进行直方图均衡后图像比较 ................................................................................................ - 1 5 -4.4加入各种噪声后图像比较 ..................................................................................................... - 1 6 -5感悟体会小结................................................................................................................................ - 16 -参考文献........................................................................................................................................... - 1 7 -

相关文档
最新文档