您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于Matlab的空间滤波实验的计算机仿真.
35基于Matlab的空间滤波实验的计算机仿真张奇辉,王洪,蓝发超(华南理工大学物理科学与技术学院,广东广州510640摘要:利用阿贝-波特实验装置和空间滤波系统,从改变频谱入手改造一幅光学图形进行光学信息处理。在此基础上,通过Matlab环境编写程序完成阿贝-波特实验的物理模型的构建并进行计算机模拟实验。关键词:计算机模拟;Matlab;空间滤波中图分类号:TP391.9文献标识码:A文章编号:1003-7551(200801-0035-041引言在工程设计领域中,人们通过对研究对象建立模型,用计算机程序实现系统的运行和得到运行结果,寻找出最优方案,然后再予以物理实现,这就是计算机仿真科学。在计算机日益普及的今天,计算机仿真技术作为虚拟实验手段已经成为计算机应用的一个重要分支。它是继理论分析和实物实验之后,认识客观规律性的新型手段。作为科学计算软件,Matlab的特点是使用方便、输入便捷、运算功能齐全,而且有大量的函数可供使用。因此本文提出基于Matlab软件,通过在频谱面上设置滤波器对空间频谱的处理,实现对阿贝-波特实验装置和空间滤波系统的模拟。为了实现仿真实验操作的方便,本文设计出了图形用户可操作界面(GUI。2空间滤波原理根据阿贝成像原理,相干光学成像过程可分为两步:第一步称为分频过程,即从物平面到光源的共轭像平面或曰频谱面,由输入的物作为衍射屏对照射光波产生夫琅和费衍射;第二步称为合频或频谱综合过程,即从频谱面到输入物的共轭像平面,被分解的频谱成分经进一步的衍射后再次叠加形成输入物的共轭像。按照傅里叶变换理论,两步成像过程实际上是光学系统对携带输入物信息的二维光场的复振幅分布进行的两次傅里叶变换过程。以图1所示4f成像系统为例,此时输入平面O(即物平面位于透镜1L的前焦平面,输出平面I(即像平面位于透镜1L的后焦平面。透镜1L和2L分别起分频(傅里叶变换和合频(逆傅里叶变换作用。设输入图像的复振幅分布为,(yxg,透镜1L后焦平面T(即频谱面上的复振幅分布为,(ηξG,按照傅里叶光学理论,当1L的孔径无限大时,函数,(ηξG即等于,(yxg的傅里叶变换,而,(yxg为,(ηξG的傅里叶逆变换,即(,(,expi2(ddxyxyGffgxyfxfyxyπ∞−∞⎡⎤=−+⎣⎦∫∫(1(,(,exp[i2(]ddgxyGxyξηπµνµν∞∞−∞−∞=+∫∫(2其中/fµξλ=,/fνηλ=,表示光场(,Gξη的空间频率。设(','gxy为透镜2L后焦平面I(输出平面上的复振幅分布,同样,当2L的孔径无限大时,(','gxy就等于的傅里叶变换:(','(,exp[i2('']ddgxyGxyξηπµνµν∞∞−∞−∞=+∫∫(3可以得(','(,gxygxy∝−−(4即输出图像是输入图像的倒置,且在几何上相似。现如果在频谱平面T上插入一衍射屏,并设其复振幅透射率函数为(,Tξη,则透过衍射屏的光场复振幅分布为:'(,(,(,GGTξηξηξη=(5经过透镜2L变换后,在像平面上便得到经过衍射屏调制后的输出图像的光场复振幅分布:111'(','{'(,}{(,}*{(,}gxyFGFGFTξηξηξη−−−==(6*收稿日期:2008-01-10这种用于调制图像频谱分布的衍射屏通常称为空间滤波器。图14f相干光学处理系统3空间滤波仿真过程空间滤波的仿真过程主要步骤为图像的频谱矩阵与滤波器矩阵的数值计算过程。但是在进行计算前,必须先确定滤波器的矩阵大小,paddedsize(为求图像的大小的函数,dftfilt(为自制滤波函数,fft2(f,size(H,1,size(H,2是对图像矩阵先进行删节或增加零,使其成为与H大小相同的矩阵,然后再进行二维傅里叶变换,然后把变换后的频谱矩阵与滤波器矩阵进行数值计算,相应的位置的元素进行相乘,得到的新矩阵即为滤波后的结果图像的频谱矩阵。3.1低通滤波仿真用一张图片作为物,放置于输入平面,用一束单色平行光垂直照射该图片,经透镜作用在频谱面上形成分立的光衍射谱。如果在频谱面上安置一个可调直径的圆孔作为滤波器,以提取不同的衍射斑,则在输出平面上能观察到变化的图像。图2显示了在频谱面上放置低通滤波器时,在输出面上像场的变化情况。仿真程序如下:Image=imread(FileFullname;PQ=paddedsize(size(Image;D0=scale*PQ(2;H=lpfilter('gaussian',PQ(1,PQ(2,D0;H1=ifftshift(H;RImage=dftfilt(Image,H;RImage=im2uint8(mat2gray(RImage;axes(handles.axes_outputImage;imshow(RImage;axes(handles.axes_filter;imshow(H1;具体的滤波过程如上面分析,先根据图像的大小确定滤波器的大小,然后相应设置滤波器的参数,把相应参数应用于低通滤波器的函数lpfilter(中,然后用dftfilt(滤波函数进行滤波,再进行相应的格式转换,最后就是通过函数axes(和imshow(在对应的坐标轴上显示处理后的结果图像和滤波器的表示图像。低通滤波的仿真过程说明了允许低频分量通过,像的边缘锐度降低。图2低通滤波器过滤效果3637图3高通滤波器过滤效果3.2高通滤波仿真高通滤波的仿真与低通滤波相似,只需要改变滤波器函数即可,即把上面程序中的低通滤波器函数lpfilter('gaussian',PQ(1,PQ(2,D0改为hpfilter('gaussian',PQ(1,PQ(2,D0(高通滤波器函数。图3显示了图像的变化情况。从高通滤波过程看到允许高频分量通过时,像的边缘效应增强。3.3带通滤波仿真同样,把滤波器函数改为带通滤波器函数bandfilter(PQ(1,PQ(2,D1,D2,其中D1,D2就是带通滤波器的两个重要参数,分别为两个圆半径。图4为带通滤波器过滤效果图。图4带通滤波器过滤效果3.4方向滤波仿真方向滤波仿真程序中主要函数如下:scale1=-90+str2double(get(handles.edit_FilterPara2,'String';D1=floor(2*scale*PQ(1;D2=scale1;H=tapefilter(PQ(1,PQ(2,D1,D2;其中参数D1代表方向滤波器中间的狭缝宽度,D2代表方向滤波器的旋转角度。图5为方向滤波的效果图。图5方向滤波的效果可见,方向滤波器的典型特点是,只能让与狭缝垂直方向上的物频率成分通过,而滤掉了其他方向上的频谱。4仿真界面的设计先设计初始界面,然后为各个控键添加代码,即相应的执行程序,并要对编辑框输入数据进行初始化。经过对程序调试,没有出现问题后,就会出现可直接对实验进行仿真操作实用界面,如图6即为低通滤波器的仿真操作界面。图6低通滤波仿真界面5总结本实验仿真可作为光学类课程的实验室建设工作的一部分。利用这个仿真实验,通过改变实验参数,可以观察和分析不同实验条件下的光学信息处理过程,可以为实际实验前确定各参数做准备工作。另外,本课题中设计的仿真程序也可以应用教学环节,用来在课前模拟各种光学滤波的滤波结果,频谱显示以及滤波前后的图像区别,从而激发学生的学习兴趣,加深学生对相关课程的理解。参考文献[1]李志能.现代光学系统原理[M].北京:北京理工大学出版社,2002.[2]贺兴华,周媛媛,王继阳.Matlab7.x图像处理[M].北京:人民邮电出版社,2000.[3]施晓红.精通GUI图形界面编程[M].北京:北京大学出版社,2002.[4]李志能,叶旭迥.光电信息处理系统[M].杭州:浙江大学出版社,1999.[5]陈怀琛.Matlab在理工课程中的应用指南[M].西安电子科技大学出版社,2000.38
本文标题:基于Matlab的空间滤波实验的计算机仿真.
链接地址:https://www.777doc.com/doc-5909889 .html