Matlab实现空间域滤波增强
时间: 2023-10-18 11:12:07 浏览: 77
空间域滤波增强是数字图像处理中常用的一种技术,它是通过对图像的像素值进行滤波处理,以达到增强图像质量的效果。具体来说,空间域滤波增强主要是通过对图像的局部像素值进行加权平均或其他数学运算来实现对图像的增强,常见的空间域滤波增强方法包括均值滤波、中值滤波、高斯滤波等。
以下是一个使用 Matlab 实现空间域滤波增强的代码示例,其中使用了均值滤波、中值滤波和高斯滤波三种方法:
```matlab
% 读取图像
img = imread('test.jpg');
% 均值滤波
h = ones(3, 3) / 9;
mean = imfilter(img, h);
% 中值滤波
median = medfilt2(img, [3, 3]);
% 高斯滤波
sigma = 2;
size = 5;
h = fspecial('gaussian', [size, size], sigma);
gaussian = imfilter(img, h);
% 显示原图、均值滤波、中值滤波和高斯滤波后的图像
subplot(2, 2, 1);
imshow(img);
title('Original Image');
subplot(2, 2, 2);
imshow(mean);
title('Mean Filter Image');
subplot(2, 2, 3);
imshow(median);
title('Median Filter Image');
subplot(2, 2, 4);
imshow(gaussian);
title('Gaussian Filter Image');
```
在上面的代码中,我们首先使用 `imread` 函数读取一张名为 `test.jpg` 的图像,然后分别使用 `imfilter` 函数对图像进行均值滤波和高斯滤波处理,使用 `medfilt2` 函数对图像进行中值滤波处理,并将结果显示出来。其中,`fspecial` 函数用于生成高斯滤波器的权值矩阵,`sigma` 表示高斯函数的标准差,`size` 表示滤波器的大小,可以根据实际需求进行调整。
阅读全文