《数字图像处理》实验报告五

一、实验任务与要求

  • 实现一个自适应局部降噪滤波器;
  • 在一幅测试版图像中加入运动模糊和高斯噪声,产生一幅退化图像,采用 deconvwnr 函数实现逆滤波及维纳滤波。

 

二、实验报告

(一)实现一个自适应局部降噪滤波器

1、自适应局部降噪滤波器函数

%自适应局部降噪滤波器函数 adpfilter
function g=adpfilter(f,nhood,noise_var)
     f=im2double(f);
     local_mean=filter2(ones(nhood),f)/prod(nhood); %局部均值 u=(1/mn)*∑f(x,y)  模板滤波,重叠区相*然后相加
     local_var=filter2(ones(nhood),f.^2)/prod(nhood)-local_mean.^2; %局部方差 σ^2=(1/mn)*∑f^2(x,y)-u^2
     g=f-local_mean; %g(x,y)=f(x,y)-u
     f=local_var-noise_var; %局部方差-噪声方差
     f=max(f,0);
     g=local_mean+((g./max(local_var,noise_var)).* f);
end

2、处理代码

f=imread('circuitboard.tif');
f=imnoise(f,'gaussian',0,0.01); %添加高斯噪声
g=adpfilter(f,[3,3],1000);%自适应局部降噪滤波器
subplot(1,2,1);
imshow(f);title('原图');
subplot(1,2,2);
imshow(g);title('自适应局部降噪');

3、处理效果

 

(二)在一幅测试版图像中加入运动模糊和高斯噪声,产生一幅退化图像,采用 deconvwnr 函数实现逆滤波及维纳滤波

1、给图像加上运动模糊

f=imread('checkerboard-clean.tif');
f=im2double(f);
PSF=fspecial('motion',45,45); %运动滤波器 
gb=imfilter(f,PSF,'circular'); %运动模糊

2、继续加上高斯噪声

noise=imnoise(zeros(size(f)),'gaussian',0,0.001); %均值为0,方差为0.001的高斯噪声
g=gb+noise; %运动模糊+高斯噪声
subplot(4,2,1);
imshow(f);title('原图');
subplot(4,2,2);
imshow(gb);title('运动模糊图像');
subplot(4,2,3);
imshow(noise);title('高斯噪声图像');
subplot(4,2,4);
imshow(g);title('模糊图像+噪声图像');

3、处理效果

     

     

4、实现逆滤波(忽略噪声) 

default_nsr=0;
r1=deconvwnr(g,PSF,default_nsr);
subplot(4,2,5);
imshow(r1);title('逆滤波');

5、实现维纳滤波(考虑噪声) 

signal_var=var(f);
noise_var=var(noise);
estimate_nsr=noise_var/signal_var;
r2=deconvwnr(g,PSF,estimate_nsr);
subplot(4,2,6);
imshow(r2);title('考虑噪声的维纳滤波');

6、处理效果

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值