在matlab中如何对中值滤波,均值滤波和高斯滤波进行对比
时间: 2023-06-16 08:02:20 浏览: 196
(基于MATLAB)图像处理中的中值滤波、均值滤波以及高斯滤波的实现与对比
5星 · 资源好评率100%
在Matlab中,可以使用以下代码对中值滤波、均值滤波和高斯滤波进行对比:
```matlab
% 读取原始图像
I = imread('lena.png');
% 添加高斯噪声
J = imnoise(I, 'gaussian', 0, 0.01);
% 中值滤波
K = medfilt2(J, [3 3]);
% 均值滤波
L = imfilter(J, fspecial('average', [3 3]));
% 高斯滤波
M = imgaussfilt(J, 1);
% 显示结果
subplot(2, 3, 1);
imshow(I);
title('原始图像');
subplot(2, 3, 2);
imshow(J);
title('添加高斯噪声后的图像');
subplot(2, 3, 3);
imshow(K);
title('中值滤波后的图像');
subplot(2, 3, 4);
imshow(L);
title('均值滤波后的图像');
subplot(2, 3, 5);
imshow(M);
title('高斯滤波后的图像');
```
首先读取原始图像,然后添加高斯噪声。接着分别使用 `medfilt2` 函数进行中值滤波,使用 `imfilter` 函数和 `fspecial` 函数进行均值滤波,使用 `imgaussfilt` 函数进行高斯滤波。最后使用 `subplot` 函数将原始图像、添加噪声后的图像和三种滤波后的图像显示在同一张图像上,方便进行对比。
可以根据需要调整滤波器的大小和参数,例如中值滤波的窗口大小、均值滤波的滤波器大小和高斯滤波的标准差。
阅读全文