matlab维纳滤波代码
时间: 2023-07-02 14:21:09 浏览: 178
维纳滤波器matlab代码
Matlab的维纳滤波可以使用`wiener2`函数实现。该函数的语法如下:
```
J = wiener2(I,[m n],noise)
```
其中,`I`是输入图像,`[m n]`是一个可选参数,用于指定滤波器的大小,`noise`是一个可选参数,用于指定噪声的方差。如果不指定`[m n]`和`noise`,`wiener2`函数会自动选择滤波器大小和噪声方差。
以下是一个示例代码:
```matlab
% 读取图像并添加高斯噪声
I = imread('lena.png');
J = imnoise(I,'gaussian',0,0.01);
% 维纳滤波
K = wiener2(J,[5 5]);
% 显示结果
figure;
subplot(1,2,1); imshow(J); title('Noisy Image');
subplot(1,2,2); imshow(K); title('Wiener Filtered Image');
```
在这个示例中,我们先读取了一张`lena.png`的图像,然后使用`imnoise`函数添加了高斯噪声。接着,我们使用`wiener2`函数对噪声图像进行维纳滤波,并将结果显示在图像窗口中。
阅读全文