基于Matlab的维纳滤波器在图像恢复中的应用

1.首先,导入原始图片;之后,在原图的基础上模拟运动模糊。

 

2.假设没有噪声,使用维纳滤波器对运动模糊的图像进行恢复。

3.已知含有噪声,使用维纳滤波器对运动模糊的图像进行恢复。

Matlab程序:

% 维纳滤波器的图像恢复,关于维纳滤波函数有wiener2和deconvwnr,分别适用于灰度图像和彩色图像

I = im2double(imread('Rabbit.jpg'));
figure();
subplot(2,2,1);
imshow(I);
title('原始图片');

% 模拟运动模糊。
LEN = 21;
THETA = 11;
PSF = fspecial('motion', LEN, THETA);
blurred = imfilter(I, PSF, 'conv', 'circular');

% 模拟附加噪声。
noise_mean = 0;
noise_var = 0.0001;
blurred_noisy = imnoise(blurred, 'gaussian', ...
                  noise_mean, noise_var);
subplot(2,2,2);
imshow(blurred_noisy)
title('模拟模糊和噪点')

% 假设没有噪音,请尝试恢复。
estimated_nsr = 0;
wnr2 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
subplot(2,2,3);
imshow(wnr2)
title('使用NSR = 0,恢复模糊的图像')

% 尝试使用对信号噪声功率的更好估计来进行恢复
% ratio.
estimated_nsr = noise_var / var(I(:));
wnr3 = deconvwnr(blurred_noisy, PSF, estimated_nsr);
subplot(2,2,4);
imshow(wnr3)
title('使用估计的NSR恢复模糊的噪点图像');

程序运行效果:

结论:通过对比下面两个结果图,可以发现维纳滤波使用有估计的NSR,图像恢复的效果较明显。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

珞瑜·

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值