实验五 图像复原.docx
- 文档编号:10234235
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:6
- 大小:16.79KB
实验五 图像复原.docx
《实验五 图像复原.docx》由会员分享,可在线阅读,更多相关《实验五 图像复原.docx(6页珍藏版)》请在冰点文库上搜索。
实验五图像复原
实验五图像复原
信息工程学院实验报告 课程名称:
数字图像处理 成绩:
实验项目名称:
实验五图像复原 实验时间:
班级:
姓名:
学号:
指导老师(签名):
一、实验目的 1.了解图像退化/复原处理的模型;2.掌握图像复原的原理及实现方法; 3.通过本实验掌握利用MATLAB编程实现图像的恢复。
4.掌握matlab代码的调试方法,熟悉常见代码错误及改正方法。
二、实验步骤及结果分析 MATLAB图像处理工具箱包含四个图像复原函数,请参照教材第126页例编程实现图像复原。
1.用点扩散(PSF)函数创建运动模糊图像,修改参数改变模糊程度。
a)无噪声运动模糊图像b)有噪声运动模糊图像程序代码:
I=imread(‘‘);%读取图像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=*randn(size(I));%正态分布的随机噪声 BlurredNoisy=imadd(Blurred,im2uint8(Noise));%对退化后的图像附加噪声subplot(1,3,3); imshow(BlurredNoisy,);title(‘有噪声运动模糊图像’);%显示运动模糊且加噪声后图像 执行结果:
第1页共8页 原始图像无噪声运动模糊图像有噪声运动模糊图像 图1无噪声和有噪声的运动模糊图像 实验结果分析:
采用仿真的方法对清晰的图像加以运动模糊,形成模糊的图像。
用这种模型来描述于目标或摄像头运动,而导致的图像模糊。
同时在加入正态分布的随机噪声图像显得更加灰暗。
2.用维纳滤波复原函数deconvwnr对模糊图像进行复原重建。
a)对无噪声运动模糊图像用deconvwnr(I,PSF)进行复原;程序代码:
I=imread(‘‘); %读取图像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(WI1,); %显示逆滤波复原结果title(‘逆滤波复原结果’); 执行结果:
原始图像无噪声运动模糊图像逆滤波复原结果 图2对无噪声的运动模糊图像进行逆滤波复原 实验结果分析:
滤波复原结果带噪信比参数维纳法可以获得较好的结果。
带自相关函数的维纳滤波复原实验结果可以看出,当图像无噪声或噪声较小,即轻度降质时,采用逆滤波恢复的方 第2页共8页 b)对有噪声运动模糊图像用deconvwnr(I,PSF)、deconvwnr(I,PSF,NSR)和deconvwnr(I,PSF,NCORR,ICORR)函数进行复原。
程序代码:
I=imread(‘‘); %读取图像subplot(2,3,1);imshow(I,); %显示图像title(‘原始图像’); PSF=fspecial(‘motion’,25,11);%运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,’conv’,’circular’);%对图像运动模糊处理Noise=*randn(size(I)); %正态分布的随机噪声BlurredNoisy=imadd(Blurred,im2uint8(Noise));%对退化后的图像附加噪声subplot(2,3,2);imshow(BlurredNoisy,); %显示运动模糊且加噪声后图像title(‘运动模糊且加噪声后图像’); WI1=deconvwnr(BlurredNoisy,PSF); %不带参数的维纳滤波复原subplot(2,3,3);imshow(WI1,); %显示逆滤波复原结果title(‘逆滤波复原结果’); NSR=sum(Noise(:
).)/sum(im2double(I(:
)).);%计算噪信比WI2=deconvwnr(BlurredNoisy,PSF,NSR);%带噪信比参数的维纳滤波复原subplot(2,3,4);imshow(WI2,); %显示带噪信比参数维纳滤波复原结果title(‘带噪信比参数维纳滤波复原结果’);NP=abs(fftn(Noise)).; NCORR=real(ifftn(NP)); %计算噪声的自相关函数IP=abs(fftn(im2double(I))).; ICORR=real(ifftn(IP)); %计算信号的自相关函数 WI3=deconvwnr(BlurredNoisy,PSF,NCORR,ICORR);%带自相关函数的维纳滤波复原subplot(2,3,5);imshow(WI3,);title(‘带自相关函数的维纳滤波复原’); 执行结果:
原始图像运动模糊且加噪声后图像逆滤波复原结果 带噪信比参数维纳滤波复原结果带自相关函数的维纳滤波复原第3页共8页 带噪信比参数维纳滤波复原结果带自相关函数的维纳滤波复原 图3对运动模糊退化且加噪声的图像进行维纳滤波 实验结果分析:
比较复原结果可以发现,在对图像和噪声信息都未知的情况下采用不带参数的维纳滤波形式进行复原效果很不好,在已知信噪比NSR参数的情况的维纳滤波复原效果有了较大的改善,在已知噪声和原图像的自相关函数等参数的情况下的维纳滤波复原效果最佳。
c)在实际应用过程中,常常无法准确得知噪声图像和理想图像的功率谱,试着用常数K来代替NSR,并通过实验观察不同K对图像复原效果的影响。
程序代码:
I=imread(‘‘); %读取图像subplot(1,3,1);imshow(I,);%显示图像title(‘原始图像’); PSF=fspecial(‘motion’,25,11);%运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,’conv’,’circular’);%对图像运动模糊处理Noise=*randn(size(I)); %正态分布的随机噪声BlurredNoisy=imadd(Blurred,im2uint8(Noise));%对退化后的图像附加噪声WI1=deconvwnr(BlurredNoisy,PSF); %不带参数的维纳滤波复原NSR=sum(Noise(:
).)/sum(im2double(I(:
)).);%计算噪信比WI2=deconvwnr(BlurredNoisy,PSF,NSR);%带噪信比参数的维纳滤波复原subplot(2,3,1);imshow(WI2,); %显示带噪信比参数维纳滤波复原结果title(‘NSR取均值复原结果’); WI3=deconvwnr(BlurredNoisy,PSF,);%噪信比取参数的维纳滤波复原 subplot(2,3,2);imshow(WI3,);title(‘NSR=复原结果’); WI4=deconvwnr(BlurredNoisy,PSF,);%带噪信比取参数的维纳滤波复原subplot(2,3,3);imshow(WI4,); %显示带噪信比参数维纳滤波复原结果title(‘NSR=复原结果’); WI5=deconvwnr(BlurredNoisy,PSF,); %带噪信比取参数的维纳滤波复原subplot(2,3,4);imshow(WI5,); %显示复原结果title(‘NSR=复原结果’); WI6=deconvwnr(BlurredNoisy,PSF,); %带噪信比取参数的维纳滤波复原subplot(2,3,5);imshow(WI6,);title(‘NSR=复原结果’); 第4页共8页 WI7=deconvwnr(BlurredNoisy,PSF,);%带噪信比取参数的维纳滤波复原subplot(2,3,6);imshow(WI7,); %显示复原结果title(‘KNS=复原结果’); 执行结果:
原始图像运动模糊且加噪声后图像逆滤波复原结果 NSR取均值复原结果NSR=复原结果NSR=复原结果NSR=复原结果NSR=复原结果KNS=复原结果 图4不同噪信比参数的维纳滤波复原 实验结果分析:
实验结果可知,在带噪信比参数的维纳滤波复原中,当NSR取均值时滤波效果是最好的,随着滤波中NSB均值减小时,图像的模糊运动减小但同时噪声增强了;反之,当NSB均值增大时,图像的模糊运动增强噪声减小了。
三、实验中遇到问题及解决方法 第5页共8页
1.图像复原和图像增强两者之间的区别。
图像复原又称为图像恢复,图像复原和图像增强一样,都是为了改善图像视觉效果,以及便于后续处理。
只是图像增强方法更偏向主观判断,而图像恢复则是根据图像畸变或退化原因,进行模型化处理。
四、实验心得体会 通过这个实验,使我对图像复原和图像增强两者之间的区别有了更加清晰的认识;在实验过程中了解了维纳滤波的原理,功能以及在图像处理方面的应用。
维纳滤波器是对噪声背景下的信号进行估计,它是最小均方误差准则下的最佳线性滤波器,在已知信噪比NSR参数的情况的维纳滤波复原效果有较大的改善。
五、源程序清单%% %1.用点扩散(PSF)函数创建运动模糊图像,修改参数改变模糊程度。
I=imread(‘‘);%读取图像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=*randn(size(I));%正态分布的随机噪声 BlurredNoisy=imadd(Blurred,im2uint8(Noise));%对退化后的图像附加噪声subplot(1,3,3); imshow(BlurredNoisy,);title(‘有噪声运动模糊图像’);%显示运动模糊且加噪声后图像%% %2.用维纳滤波复原函数deconvwnr对模糊图像进行复原重建。
%a)对无噪声运动模糊图像用deconvwnr(I,PSF)进行复原;I=imread(‘‘); %读取图像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(WI1,); %显示逆滤波复原结果title(‘逆滤波复原结果’);%% %2.用维纳滤波复原函数deconvwnr对模糊图像进行复原重建。
第6页共8页 %b)对有噪声运动模糊图像用deconvwnr(I,PSF)、deconvwnr(I,PSF,NSR)和deconvwnr(I,PSF,NCORR,ICORR)函数进行复原I=imread(‘‘); %读取图像subplot(2,3,1);imshow(I,); %显示图像title(‘原始图像’); PSF=fspecial(‘motion’,25,11);%运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,’conv’,’circular’);%对图像运动模糊处理Noise=*randn(size(I)); %正态分布的随机噪声BlurredNoisy=imadd(Blurred,im2uint8(Noise));%对退化后的图像附加噪声subplot(2,3,2);imshow(BlurredNoisy,); %显示运动模糊且加噪声后图像title(‘运动模糊且加噪声后图像’); WI1=deconvwnr(BlurredNoisy,PSF); %不带参数的维纳滤波复原subplot(2,3,3);imshow(WI1,); %显示逆滤波复原结果title(‘逆滤波复原结果’); NSR=sum(Noise(:
).)/sum(im2double(I(:
)).);%计算噪信比WI2=deconvwnr(BlurredNoisy,PSF,NSR);%带噪信比参数的维纳滤波复原subplot(2,3,4);imshow(WI2,); %显示带噪信比参数维纳滤波复原结果title(‘带噪信比参数维纳滤波复原结果’);NP=abs(fftn(Noise)).; NCORR=real(ifftn(NP)); %计算噪声的自相关函数IP=abs(fftn(im2double(I))).; ICORR=real(ifftn(IP)); %计算信号的自相关函数 WI3=deconvwnr(BlurredNoisy,PSF,NCORR,ICORR);%带自相关函数的维纳滤波复原subplot(2,3,5);imshow(WI3,);title(‘带自相关函数的维纳滤波复原’);%% %%2.用维纳滤波复原函数deconvwnr对模糊图像进行复原重建。
%c)对有噪声运动模糊图像用deconvwnr(I,PSF)、deconvwnr(I,PSF,NSR)和deconvwnr(I,PSF,NCORR,ICORR)函数进行复原 I=imread(‘‘); %读取图像subplot(1,3,1);imshow(I,);%显示图像title(‘原始图像’); PSF=fspecial(‘motion’,25,11);%运动模糊函数,运动位移是25像素,角度是11Blurred=imfilter(I,PSF,’conv’,’circular’);%对图像运动模糊处理Noise=*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(‘逆滤波复原结果’); 第7页共8页 figure NSR=sum(Noise(:
).)/sum(im2double(I(:
)).);%计算噪信比WI2=deconvwnr(BlurredNoisy,PSF,NSR);%带噪信比参数的维纳滤波复原subplot(2,3,1); imshow(WI2,); %显示带噪信比参数维纳滤波复原结果title(‘NSR取均值复原结果’); WI3=deconvwnr(BlurredNoisy,PSF,);%噪信比取参数的维纳滤波复原subplot(2,3,2);imshow(WI3,); title(‘NSR=复原结果’); WI4=deconvwnr(BlurredNoisy,PSF,);%带噪信比取参数的维纳滤波复原subplot(2,3,3); imshow(WI4,); %显示带噪信比参数维纳滤波复原结果title(‘NSR=复原结果’); WI5=deconvwnr(BlurredNoisy,PSF,);%带噪信比取参数的维纳滤波复原subplot(2,3,4); imshow(WI5,); %显示复原结果title(‘NSR=复原结果’); WI6=deconvwnr(BlurredNoisy,PSF,);%带噪信比取参数的维纳滤波复原subplot(2,3,5);imshow(WI6,); title(‘NSR=复原结果’); WI7=deconvwnr(BlurredNoisy,PSF,);%带噪信比取参数的维纳滤波复原subplot(2,3,6); imshow(WI7,); %显示复原结果title(‘KNS=复原结果’); 第8页共8页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验五 图像复原 实验 图像 复原
![提示](https://static.bingdoc.com/images/bang_tan.gif)