matlab维纳滤波图像去噪的示例代码
时间: 2023-10-25 09:07:44 浏览: 173
图像去噪基于维纳滤波实现图像去噪发matlab代码
5星 · 资源好评率100%
以下是一个使用Matlab实现维纳滤波图像去噪的示例代码:
```matlab
% 读取图像
img = imread('lena.png');
% 添加高斯噪声
noise_img = imnoise(img, 'gaussian', 0, 0.01);
% 计算信噪比
snr_before = psnr(img, noise_img);
% 维纳滤波
wnr_img = deconvwnr(noise_img, fspecial('gaussian', [5 5], 2), 0.01);
% 计算信噪比
snr_after = psnr(img, wnr_img);
% 显示结果
subplot(1, 3, 1), imshow(img), title('原始图像');
subplot(1, 3, 2), imshow(noise_img), title('添加高斯噪声后的图像');
subplot(1, 3, 3), imshow(wnr_img), title('维纳滤波后的图像');
% 输出信噪比
fprintf('添加高斯噪声前的信噪比为:%f\n', snr_before);
fprintf('维纳滤波后的信噪比为:%f\n', snr_after);
```
这段代码首先读取一张图像,然后添加高斯噪声。接着使用`deconvwnr`函数进行维纳滤波,最后计算并输出信噪比。最终结果包括原始图像、添加噪声后的图像和维纳滤波后的图像,以及信噪比的输出。
阅读全文