matlab 高斯与中值滤波
时间: 2023-07-30 14:06:26 浏览: 99
matlab高斯滤波、中值滤波、均值滤波
4星 · 用户满意度95%
Matlab中提供了两种常用的图像滤波方式:高斯滤波和中值滤波。
高斯滤波是通过对图像中每个像素点周围的像素值进行加权平均来实现的,权值由高斯函数计算得出。这种滤波方式可以有效地降低图像中的噪声,同时保持图像中的边缘信息。
在Matlab中,可以使用“imgaussfilt”函数来实现高斯滤波。例如,以下代码可以对图像进行高斯滤波:
```
img = imread('image.jpg');
filt_img = imgaussfilt(img, 2); % 2为高斯滤波的标准差
imshow(filt_img);
```
中值滤波是通过将每个像素周围的像素值排序后取中值来实现的。这种方法可以有效地去除图像中的椒盐噪声等离群点,但不能保持图像中的边缘信息。
在Matlab中,可以使用“medfilt2”函数来实现中值滤波。例如,以下代码可以对图像进行中值滤波:
```
img = imread('image.jpg');
filt_img = medfilt2(img, [3,3]); % [3,3]为中值滤波的窗口大小
imshow(filt_img);
```
需要注意的是,滤波窗口的大小越大,滤波效果越明显,但也会导致图像细节的丢失。
阅读全文