利用Matlab进行图像降噪
时间: 2023-06-30 22:04:08 浏览: 102
基于MATLAB的图像去噪
Matlab 中提供了很多图像降噪的函数,比如 imnoise, medfilt2, wiener2 等等。其中 imnoise 可以添加各种噪声,medfilt2 可以进行中值滤波,wiener2 可以进行维纳滤波。下面是一个简单的图像降噪示例:
```matlab
% 读入原始图像
im = imread('lena.png');
% 添加椒盐噪声
im_noisy = imnoise(im, 'salt & pepper', 0.02);
% 中值滤波
im_medfilt = medfilt2(im_noisy, [3 3]);
% 维纳滤波
im_wiener = wiener2(im_noisy, [5 5]);
% 显示结果
subplot(2,2,1); imshow(im); title('原始图像');
subplot(2,2,2); imshow(im_noisy); title('添加椒盐噪声后的图像');
subplot(2,2,3); imshow(im_medfilt); title('中值滤波结果');
subplot(2,2,4); imshow(im_wiener); title('维纳滤波结果');
```
上述代码中,我们首先读入了一张 Lena 的图像,然后用 imnoise 函数添加了 2% 的椒盐噪声。接着,我们分别用 medfilt2 和 wiener2 进行了中值滤波和维纳滤波,并将结果显示出来。你可以尝试修改代码中的参数,比如噪声程度、滤波器大小等,来观察不同的效果。
阅读全文