编写一个利用维纳滤波方法进行图像复原的MATLAB
时间: 2024-05-10 07:15:51 浏览: 89
以下是一个利用维纳滤波方法进行图像复原的MATLAB代码示例:
```matlab
%% 读取图像并添加高斯噪声
I = imread('lena.png'); % 读取图像
J = imnoise(I, 'gaussian', 0, 0.001); % 添加高斯噪声
%% 维纳滤波复原
K = deconvwnr(J, fspecial('gaussian', [5, 5], 2), 0.01); % 维纳滤波复原
%% 显示结果
subplot(131); imshow(I); title('原图');
subplot(132); imshow(J); title('加噪图');
subplot(133); imshow(K); title('复原图');
```
代码中,首先读取一张图像并添加高斯噪声。然后利用`deconvwnr`函数进行维纳滤波复原,其中第一个参数为加噪图像,第二个参数为模糊核,本例中使用的是高斯核,第三个参数为信噪比。最后用`imshow`函数分别显示原图、加噪图和复原图。
阅读全文