matlab图像空间域滤波
时间: 2024-10-24 09:00:49 浏览: 32
在MATLAB中,图像的空间域滤波是指通过直接对图像像素进行操作来改变图像特性的一种处理技术。主要有以下几种常见的滤波方法:
1. **均值滤波**:将每个像素点的值替换为其周围指定邻域(如3x3、5x5等矩阵)内的平均值,常用于平滑图像,去除噪声。
```matlab
img_filtered = imfilter(img, ones(size(kernel))/numel(kernel), 'replicate');
```
2. **高斯滤波**:利用高斯函数作为权重分布,强调近似中心像素的影响,是一种低通滤波器,可以进一步平滑图像。
```matlab
img_filtered = imgaussfilt(img, sigma);
```
3. **中值滤波**:适用于去除椒盐噪声,它只保留像素所在区域的中值,对于极端值有较好的抑制效果。
```matlab
img_filtered = medfilt2(img, [kernel_size kernel_size]);
```
4. **锐化滤波**:增加图像边缘的对比度,通常使用负梯度算子或拉普拉斯算子。
```matlab
sobel_x = [-1 0 1; -2 0 2; -1 0 1]; % Sobel 矩阵
sobel_y = [-1 -2 -1; 0 0 0; 1 2 1];
img_filtered = imfilter(img, [sobel_x sobel_y], 'replicate') ./ sqrt(sum(sobel_x.^2) + sum(sobel_y.^2));
```
阅读全文