《实验五--图像复原(7页).doc》由会员分享,可在线阅读,更多相关《实验五--图像复原(7页).doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-实验五-图像复原-第 7 页 信息工程学院实验报告成 绩:指导老师(签名):课程名称:数字图像处理 实验项目名称:实验五 图像复原 实验时间:2016.12.02 班级: 姓名: 学号: 一、实验目的1.了解图像退化/复原处理的模型; 2. 掌握图像复原的原理及实现方法;3. 通过本实验掌握利用MATLAB编程实现图像的恢复。4. 掌握matlab代码的调试方法,熟悉常见代码错误及改正方法。二、实验步骤及结果分析MATLAB图像处理工具箱包含四个图像复原函数,请参照教材第126页例6.8编程实现图像复原。1用点扩散(PSF)函数创建运动模糊图像,修改参数改变模糊程度。a) 无噪声运动模糊图像
2、b) 有噪声运动模糊图像程序代码:I=imread(cameraman.tif); %读取图像subplot(1,3,1);imshow(I,);%显示图像title(原始图像);PSF=fspecial(motion,25,11); %运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,conv,circular); %对图像运动模糊处理subplot(1,3,2);imshow(Blurred,);title(无噪声运动模糊图像); %显示无噪声运动模糊图像Noise=0.05*randn(size(I); %正态分布的随机噪声BlurredNoisy
3、=imadd(Blurred,im2uint8(Noise);%对退化后的图像附加噪声subplot(1,3,3);imshow(BlurredNoisy,);title(有噪声运动模糊图像); %显示运动模糊且加噪声后图像执行结果:图1 无噪声和有噪声的运动模糊图像实验结果分析:采用仿真的方法对清晰的图像加以运动模糊,形成模糊的图像。用这种模型来描述由于目标或摄像头运动,而导致的图像模糊。 同时在加入正态分布的随机噪声图像显得更加灰暗。2用维纳滤波复原函数deconvwnr 对模糊图像进行复原重建。a) 对无噪声运动模糊图像用deconvwnr(I,PSF)进行复原;程序代码:I=imrea
4、d(cameraman.tif); %读取图像subplot(1,3,1);imshow(I,); %显示图像title(原始图像); PSF=fspecial(motion,25,11); %运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,conv,circular); %对图像运动模糊处理subplot(1,3,2);imshow(Blurred,); %显示无噪声运动模糊图像title(无噪声运动模糊图像); WI1=deconvwnr(Blurred,PSF); %不带参数的维纳滤波(逆滤波)复原subplot(1,3,3); imshow(W
5、I1,); %显示逆滤波复原结果title(逆滤波复原结果); 执行结果:图2 对无噪声的运动模糊图像进行逆滤波复原实验结果分析:由实验结果可以看出,当图像无噪声或噪声较小,即轻度降质时,采用逆滤波恢复的方法可以获得较好的结果。b) 对有噪声运动模糊图像用deconvwnr(I,PSF)、deconvwnr(I,PSF,NSR) 和deconvwnr(I,PSF,NCORR,ICORR)函数进行复原。程序代码:I=imread(cameraman.tif); %读取图像subplot(2,3,1);imshow(I,); %显示图像title(原始图像);PSF=fspecial(motion
6、,25,11); %运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,conv,circular); %对图像运动模糊处理Noise=0.05*randn(size(I); %正态分布的随机噪声BlurredNoisy=imadd(Blurred,im2uint8(Noise);%对退化后的图像附加噪声subplot(2,3,2);imshow(BlurredNoisy,); %显示运动模糊且加噪声后图像title(运动模糊且加噪声后图像);WI1=deconvwnr(BlurredNoisy,PSF); %不带参数的维纳滤波(逆滤波)复原subplot
7、(2,3,3); imshow(WI1,); %显示逆滤波复原结果title(逆滤波复原结果);NSR=sum(Noise(:).2)/sum(im2double(I(:).2);%计算噪信比WI2=deconvwnr(BlurredNoisy,PSF,NSR); %带噪信比参数的维纳滤波复原subplot(2,3,4);imshow(WI2,); %显示带噪信比参数维纳滤波复原结果title(带噪信比参数维纳滤波复原结果);NP=abs(fftn(Noise).2;NCORR=real(ifftn(NP); %计算噪声的自相关函数IP=abs(fftn(im2double(I).2;ICOR
8、R=real(ifftn(IP); %计算信号的自相关函数WI3=deconvwnr(BlurredNoisy,PSF,NCORR,ICORR); %带自相关函数的维纳滤波复原subplot(2,3,5);imshow(WI3,); title(带自相关函数的维纳滤波复原);执行结果:图3 对运动模糊退化且加噪声的图像进行维纳滤波实验结果分析:比较复原结果可以发现,在对图像和噪声信息都未知的情况下采用不带参数的维纳滤波(逆滤波)形式进行复原效果很不好,在已知信噪比NSR参数的情况的维纳滤波复原效果有了较大的改善,在已知噪声和原图像的自相关函数等参数的情况下的维纳滤波复原效果最佳。c) 在实际应
9、用过程中,常常无法准确得知噪声图像和理想图像的功率谱,试着用常数K来代替NSR,并通过实验观察不同K对图像复原效果的影响。程序代码:I=imread(cameraman.tif); %读取图像subplot(1,3,1);imshow(I,);%显示图像title(原始图像);PSF=fspecial(motion,25,11); %运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,conv,circular); %对图像运动模糊处理Noise=0.05*randn(size(I); %正态分布的随机噪声BlurredNoisy=imadd(Blurre
10、d,im2uint8(Noise);%对退化后的图像附加噪声WI1=deconvwnr(BlurredNoisy,PSF); %不带参数的维纳滤波(逆滤波)复原NSR=sum(Noise(:).2)/sum(im2double(I(:).2); %计算噪信比WI2=deconvwnr(BlurredNoisy,PSF,NSR); %带噪信比参数的维纳滤波复原subplot(2,3,1);imshow(WI2,); %显示带噪信比参数维纳滤波复原结果title(NSR取均值复原结果);WI3=deconvwnr(BlurredNoisy,PSF,0.005); %噪信比取0.005参数的维纳滤波
11、复原subplot(2,3,2);imshow(WI3,); title(NSR=0.005复原结果);WI4=deconvwnr(BlurredNoisy,PSF,0.001); %带噪信比取0.002参数的维纳滤波复原subplot(2,3,3);imshow(WI4,); %显示带噪信比参数维纳滤波复原结果title(NSR=0.001复原结果); WI5=deconvwnr(BlurredNoisy,PSF,0.01); %带噪信比取0.01参数的维纳滤波复原subplot(2,3,4);imshow(WI5,); %显示复原结果title(NSR=0.01复原结果);WI6=deco
12、nvwnr(BlurredNoisy,PSF,0.05); %带噪信比取0.05参数的维纳滤波复原subplot(2,3,5);imshow(WI6,); title(NSR=0.05复原结果);WI7=deconvwnr(BlurredNoisy,PSF,0.1); %带噪信比取0.1参数的维纳滤波复原subplot(2,3,6);imshow(WI7,); %显示复原结果title(KNS=0.1复原结果);执行结果:图4 不同噪信比参数的维纳滤波复原实验结果分析:由实验结果可知,在带噪信比参数的维纳滤波复原中,当NSR取均值时滤波效果是最好的,随着滤波中NSB由均值减小时,图像的模糊运动
13、减小但同时噪声增强了;反之,当NSB由均值增大时,图像的模糊运动增强噪声减小了。三、实验中遇到问题及解决方法1. 图像复原和图像增强两者之间的区别。图像复原又称为图像恢复,图像复原和图像增强一样,都是为了改善图像视觉效果,以及便于后续处理。只是图像增强方法更偏向主观判断,而图像恢复则是根据图像畸变或退化原因,进行模型化处理。四、实验心得体会通过这个实验,使我对图像复原和图像增强两者之间的区别有了更加清晰的认识;在实验过程中了解了维纳滤波的原理,功能以及在图像处理方面的应用。维纳滤波器是对噪声背景下的信号进行估计,它是最小均方误差准则下的最佳线性滤波器,在已知信噪比NSR参数的情况的维纳滤波复原
14、效果有较大的改善。五、源程序清单%1用点扩散(PSF)函数创建运动模糊图像,修改参数改变模糊程度。I=imread(cameraman.tif); %读取图像subplot(1,3,1);imshow(I,);%显示图像title(原始图像);PSF=fspecial(motion,25,11); %运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,conv,circular); %对图像运动模糊处理subplot(1,3,2);imshow(Blurred,);title(无噪声运动模糊图像); %显示无噪声运动模糊图像Noise=0.05*randn
15、(size(I); %正态分布的随机噪声BlurredNoisy=imadd(Blurred,im2uint8(Noise);%对退化后的图像附加噪声subplot(1,3,3);imshow(BlurredNoisy,);title(有噪声运动模糊图像); %显示运动模糊且加噪声后图像%2用维纳滤波复原函数deconvwnr 对模糊图像进行复原重建。 %a) 对无噪声运动模糊图像用deconvwnr(I,PSF)进行复原;I=imread(cameraman.tif); %读取图像subplot(1,3,1);imshow(I,); %显示图像title(原始图像); PSF=fspecia
16、l(motion,25,11); %运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,conv,circular); %对图像运动模糊处理subplot(1,3,2);imshow(Blurred,); %显示无噪声运动模糊图像title(无噪声运动模糊图像); WI1=deconvwnr(Blurred,PSF); %不带参数的维纳滤波(逆滤波)复原subplot(1,3,3); imshow(WI1,); %显示逆滤波复原结果title(逆滤波复原结果); %2用维纳滤波复原函数deconvwnr 对模糊图像进行复原重建。 %b) 对有噪声运动模糊图
17、像用deconvwnr(I,PSF)、deconvwnr(I,PSF,NSR)和deconvwnr(I,PSF,NCORR,ICORR)函数进行复原I=imread(cameraman.tif); %读取图像subplot(2,3,1);imshow(I,); %显示图像title(原始图像);PSF=fspecial(motion,25,11); %运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,conv,circular); %对图像运动模糊处理Noise=0.05*randn(size(I); %正态分布的随机噪声BlurredNoisy=ima
18、dd(Blurred,im2uint8(Noise);%对退化后的图像附加噪声subplot(2,3,2);imshow(BlurredNoisy,); %显示运动模糊且加噪声后图像title(运动模糊且加噪声后图像);WI1=deconvwnr(BlurredNoisy,PSF); %不带参数的维纳滤波(逆滤波)复原subplot(2,3,3); imshow(WI1,); %显示逆滤波复原结果title(逆滤波复原结果);NSR=sum(Noise(:).2)/sum(im2double(I(:).2);%计算噪信比WI2=deconvwnr(BlurredNoisy,PSF,NSR);
19、%带噪信比参数的维纳滤波复原subplot(2,3,4);imshow(WI2,); %显示带噪信比参数维纳滤波复原结果title(带噪信比参数维纳滤波复原结果);NP=abs(fftn(Noise).2;NCORR=real(ifftn(NP); %计算噪声的自相关函数IP=abs(fftn(im2double(I).2;ICORR=real(ifftn(IP); %计算信号的自相关函数WI3=deconvwnr(BlurredNoisy,PSF,NCORR,ICORR); %带自相关函数的维纳滤波复原subplot(2,3,5);imshow(WI3,); title(带自相关函数的维纳滤
20、波复原);%2用维纳滤波复原函数deconvwnr 对模糊图像进行复原重建。 %c) 对有噪声运动模糊图像用deconvwnr(I,PSF)、deconvwnr(I,PSF,NSR)和deconvwnr(I,PSF,NCORR,ICORR)函数进行复原I=imread(cameraman.tif); %读取图像subplot(1,3,1);imshow(I,);%显示图像title(原始图像);PSF=fspecial(motion,25,11); %运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,conv,circular); %对图像运动模糊处理N
21、oise=0.05*randn(size(I); %正态分布的随机噪声BlurredNoisy=imadd(Blurred,im2uint8(Noise);%对退化后的图像附加噪声subplot(1,3,2);imshow(BlurredNoisy,); %显示运动模糊且加噪声后图像title(运动模糊且加噪声后图像);WI1=deconvwnr(BlurredNoisy,PSF); %不带参数的维纳滤波(逆滤波)复原subplot(1,3,3); imshow(WI1,); %显示逆滤波复原结果title(逆滤波复原结果);figureNSR=sum(Noise(:).2)/sum(im2d
22、ouble(I(:).2); %计算噪信比WI2=deconvwnr(BlurredNoisy,PSF,NSR); %带噪信比参数的维纳滤波复原subplot(2,3,1);imshow(WI2,); %显示带噪信比参数维纳滤波复原结果title(NSR取均值复原结果);WI3=deconvwnr(BlurredNoisy,PSF,0.005); %噪信比取0.005参数的维纳滤波复原subplot(2,3,2);imshow(WI3,); title(NSR=0.005复原结果);WI4=deconvwnr(BlurredNoisy,PSF,0.001); %带噪信比取0.002参数的维纳滤
23、波复原subplot(2,3,3);imshow(WI4,); %显示带噪信比参数维纳滤波复原结果title(NSR=0.001复原结果);WI5=deconvwnr(BlurredNoisy,PSF,0.01); %带噪信比取0.01参数的维纳滤波复原subplot(2,3,4);imshow(WI5,); %显示复原结果title(NSR=0.01复原结果);WI6=deconvwnr(BlurredNoisy,PSF,0.05); %带噪信比取0.05参数的维纳滤波复原subplot(2,3,5);imshow(WI6,); title(NSR=0.05复原结果);WI7=deconvwnr(BlurredNoisy,PSF,0.1); %带噪信比取0.1参数的维纳滤波复原subplot(2,3,6);imshow(WI7,); %显示复原结果title(KNS=0.1复原结果);