资源描述:
《图像退化与复原实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、电子科技大学实验报告学生姓名:李雄风学号:2905301014指导老师:彭真明日期:2012年4月12日一、实验室名称:光电楼327、329学生机房二、实验项目名称:图像退化与复原三、实验原理:1.图像退化与复原图像复原是图像处理的主要内容之一,所谓图像复原就是指去除或减轻在图像获取过程中发生的图像质量的下降。成像过程中的图像“退化”,是指由于成像系统各种因素的影响,使得图像质量降低。图像复原可以看作图像退化的逆过程,是将图像退化的过程加以估计,建立退化的数学模型后,补偿退化过程造成的失真。图像在形成、传输和记录过程中,由于受到多方面的影响,不可避免地造成图像质量的退化(degrada
2、tion)。造成图像退化的原因很多,主要有:•射线辐射、大气湍流等造成的照片畸变;•模拟图像数字化的过程中,由于会损失部分细节,造成质量下降;•镜头聚焦不准产生的散焦模糊;•成像系统中始终存在的噪声干扰;•拍摄时,相机与景物之间的相对运动产生的运动模糊;•底片感光、图像显示时会造成记录显示失真;•成像系统的像差、非线性畸变、有限带宽等造成的图像失真;•携带遥感仪器的飞机或卫星运动的不稳定,以及地球自转等因素引起的照片几何失真。2.维纳(Wiener)滤波掌握图像f和噪声n的准确先验知识是非常困难的,一种较为合理的假设是将它们近似的看成是平稳随机过程。假设Rf和Rn表示f和n的自相关矩阵
3、,其定义为:Rf=E{ffT}Rn=E{nnT}式中,E{•}代表数学期望。定义QTQ=Rf-1Rf,得:f=(HTH+γRf-1Rf)-1HTg假设M=N,Sf和Sn分别为图像信号和噪声的功率谱,则:Fu,v=H*u,vHu,v2+γSnu,vSfu,vGu,v=1Hu,vHu,v2Hu,v2+γSnu,vSfu,vGu,v式中,u,v=0,1,2,…,N-1,Hu,v2=H*u,vHu,v。四、实验目的:1.了解光电图像的退化原因和熟悉退化模型;2.掌握和理解基本的噪声模型及运动模糊退化过程;3.熟悉和掌握几种经典的图像复原方法及其基本原理;4.能熟练利用Matlab工具进行图像的
4、各种退化处理,并能编程实现退化图像的复原。五、实验内容:1.滤波器设计及图像滤波实验;2.基于Wiener滤波的图像复原。六、实验器材(设备、元器件):微型计算机、Matlab工具及相应的开发环境。七、实验步骤:(一)滤波器设计及图像滤波实验1.分别设计一个5×5(或3×3)的低通和高通滤波器模板(空域)。2.读入一幅图像(为便于显示,最好读取长宽相同的原始图,如256×256,512×512等),与设计的滤波器进行卷积(conv2)运算,计算滤波结果。3.最后,在同一窗口下分别画出原始图像、滤波器、滤波结果以及它们对应的频谱图。4.最后一步,分别显示滤波器的3D频谱。(二)基于Wie
5、ner滤波的图像复原1.利用Matlab工具,设计图像的退化模型(包括噪声污染及模糊退化两部分),其中模糊退化指定为运动模糊(运动模糊的方向可任意指定,如10度、20度、45度等),噪声模型可自行设定。2.利用Matlab工具,编程实现利用Wiener滤波方法对退化图像的复原。要求在同一个窗口下显示原始图像、退化图像、给定k值下的复原结果及复原图像与原始图像的差值图共4个图,并对复原结果进行必要的分析。3.改变k值,重复实验内容(二)。八、实验数据及结果分析:本实验的Matlab代码如下:clearall;clc;%%滤波器设计及图像滤波实验II=imread('E:peppers.
6、jpg');II=double(rgb2gray(II));%低通滤波器图像滤波实验L=[14641;41624164;62436246;41624164;14641]/256;[m,n]=size(II);LL=zeros(m,n);LL(232:281,232:281)=imresize(L,10,'bilinear');IL=conv2(II,L,'same');subplot(2,3,1),imshow(II,[])title('原始图像')subplot(2,3,2),imshow(LL,[])title('空域滤波器')subplot(2,3,3),imshow(IL,[]
7、)title('滤波结果')fftII=abs(fftshift(fft2(II)));fftII=(fftII-min(min(fftII)))/(max(max(fftII))-min(min(fftII)))*256;fftL=abs(fftshift(fft2(L)));fftL=(fftL-min(min(fftL)))/(max(max(fftL))-min(min(fftL)))*256;fftLL=zeros(m,n);fftL