《实验四 数字信号处理应用——数字图像的滤波与MATLAB数字信号处理工具箱的学习.docx》由会员分享,可在线阅读,更多相关《实验四 数字信号处理应用——数字图像的滤波与MATLAB数字信号处理工具箱的学习.docx(5页珍藏版)》请在第一文库网上搜索。
1、实验四数字信号处理应用一一数字图像的滤波与MAT1AB数字信号处理工具箱的学习实验目的1 .进一步了解mat1ab软件,学会使用mat1ab软件对图像做滤波处理,掌握滤波算法,体会滤波效果2 .了解几种不同滤波方式的使用和使用的场合,培养处理实际图像的能力3 .熟悉傅立叶变换的基本性质4 .熟练掌握FFT变换方法及应用实验内容1 .完成对于给定图像+噪声,使用平均滤波器、中值滤波器对不同强度的高斯噪声和椒盐噪声,进行滤波处理;评价处理结果;2 .利用mat1ab实现空域滤波的例子。I=imread(eight.tif);J=imnoise(I,gauss,z0.02);J=imnoise(I,
2、sa1t&pepper,z0.02);ave1=fspecia1(average,z3);ave2=fspecia1(,averagez5);K=fi1ter2(ave1,J)/255;1=fi1ter2(ave2zJ)/255;M=medfi1t2(Jz3,3);N=medfi1t2(J,4,4);subp1ot(3,2z1);imshow(I);x1abe1(S1原图,);subp1ot(3,2,2);imshow(J);X1abeI。图2原图加噪,);subp1ot(3,2,3);imshow(K);x1abe1(图33*3模板平均小泯.波,);subp1ot(3,2,4);imshow
3、(1);X1abeI(图45*5模板平均值滤波一;subp1ot(3,2,5);imshow(M);X1abeI(,图53*3模板中值滤波,);subp1ot(3,2,6);imshow(N);X1abej1。图64*4模板中值滤波,);要求:读懂程序,给每条语句注释3 .应用傅立叶变换进行图像处理傅立叶变换是线性系统分析的有力工具之一,它能够定量地分析数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。4 .利用mat1ab软件实现数字图像傅立叶变换的程序。例子中,fft2指二维傅立叶变换。I=imread(,C:ProgramFi1esMAT1ABR2009atoo1boxi
4、magesXimdemoseight.tif);subp1ot(1z2z1);imshow(I);x1abe1(,Jg1);fft1=fft2(I);sfft1=fftshift(fft1);RR=rea1(sfft1);II=imag(sfft1);A=sqrt(RR.2+II.2);A=(A-min(min(A)/(max(max(A)-min(min(A)*225;subp1ot(1z2z2);imshow(A);x1abe1要求:读懂程序,给每条语句注释三、编程题上述例1中,分别改变模板大小和噪声参数,观察漉波效果。在图库中,用不同的图来试试实验效果。注释:高斯噪声是指噪声服从高斯分布
5、,即某个强度的噪声点个数最多,离这个强度越远噪声点个数越少,且这个规律服从高斯分布。高斯噪声是一种加性噪声,即噪声直接加到原图像上,因此可以用线性滤波器滤除。椒盐噪声类似把椒盐撒在图像上,是一种在图像上出现很多白点或黑点的噪声。椒盐噪声可以认为是一种逻辑噪声,用线性滤波器滤除的结果不好,一般采用中值滤波器滤波可以得到较好的结果。注意:打开文件时,文件必须在当前目录下,否则,需在打开的文件语句中写明绝对路径。附:MAT1AB数字信号处理工具箱的学习MAT1AB信号处理工具箱(SignaIPrOCeSSingtoOIboX)是一个内容丰富的信号处理软件库,我们在课程中所讨论的大部分理论与算法都可以
6、在该工具箱中找到对应的m文件,是我们学习、应用数字信号处理的一个极好工具。除了信号处理工具箱外,MAT1AB中和信号处理直接有关的工具箱还包括:Fi1terdesigntoo1box(滤波器设计工具箱)Deve1operskitforT1DSP(T1公司DSP开发工具箱)Wave1ettoo1box(小波工具箱)Imageprocessingtoo1box(图像处理工具箱)High-orderspectra1ana1ysistoo1box(高阶谱分析工具箱)工具箱中绝大部分m文件的原文件都是对使用者开放的,这有利于我们学习有关理论和算法,而且可以向工具箱中增加自己编写的新程序(尝试加入一个自己
7、编写的卷积或各种运算的程序加入到工具箱中。),或是根据自己的需要改写程序中的某些内容。下面,通过例子来说明工具箱中若干内部函数的用法。例1:产生一个均匀分布的白噪声信号(),画出其波形,并检验其分布情况。c1ear;N=50000;u=rand(1,N);u_mean=mean(u);power_u=var(u);subp1ot(211);p1ot(u(1:100);gridon;y1abe1(u(n);subp1ot(212);hist(u,50);gridon;y1abe1(histogramofu(n);备注:不懂的函数,可用“he1p函数名”在MAT1AB帮助中寻求答案,如果看不懂MA
8、T1AB的函数说明,请利用各种互联网武器来寻求答案,自己解决问题。若对中文给出的一些术语仍然不明白,请继续百度。例2:产生一个均匀分布、均值为0,功率为0.01的白噪声信号请自己根据之前所学,自行编制程序完成。提示:上例已指出,rand(N)给出的伽)的均值约为0.5,功率约为1/2,现希望将均值变为0,功率变为0.01。实现前者比较容易,只需将()减去均值即可,而实现后者则要调整()的幅度。令P=OQ1是所希望的功率,只需按式子a=yP;=12P求出常数a,并用a乘以双)即可。例3:产生零均值,功率为0.1且服从高斯分布的白噪声信号伽)。提示:函数randn可用来产生均值为零、方差为1、服从
9、高斯分布的白噪声信号伽),其调用格式请参考MAT1AB的帮助。例4:mat1ab的信号处理工具箱中,fi1ter.m文件可用来求一个离散系统的输出。假设己知系统的人(),由于y()=x()*/?(),因此,可利用以前我们所学习过的COnV.m文件来方便地求出),()。文件fi1ter.m是在已知B(z),A(z),但不知道人(M)的情况下求y()的。显然,若y(n)=b()x(n)+b(2)x(n-1)+-+b(nb+1)Xn-nb)-(2)y(-1)-a(nu+)y(n-na)则调用格式为:=fi1ter(b,a,x)请根据上述知识,求下列系统的阶跃响应(即输入为阶跃信号时所对应的系统的输出)。H(Z)=0.001836+0.007344z,+0.011016z2+0.007374z3+0.001836z413.0544ZT+3.8291z2-2.2925z-3+0.55075z-4