数字图像实验:图像噪声滤波技术
时间: 2025-02-26 11:26:35 浏览: 38
### 数字图像处理中的噪声滤波技术
#### 1. 图像读取与显示
为了实现对图像的噪声滤波,在MATLAB环境中可以利用`imread()`函数来加载图像文件,并使用`imshow()`函数展示原始图像。对于经典的测试图像Lena,操作如下所示:
```matlab
img_original = imread('lena.bmp');
figure;
subplot(2,2,1);
imshow(img_original); title('Original Image');
```
[^1]
#### 2. 添加不同类型噪声
针对同一幅图像可人为引入两种常见类型的随机干扰——高斯白噪声以及椒盐噪声。这可以通过调用特定的MATLAB内置功能完成。
- **高斯噪声**:借助于`imnoise()`命令向图像中加入均值为0、方差指定的小范围内的正态分布随机变量作为扰动项;
- **椒盐噪声**:同样运用`imnoise()`,不过参数设置改为'salt & pepper'模式,从而模拟黑白斑点形式存在的异常像素点。
```matlab
% Add Gaussian noise with mean=0 and variance=0.01
noisy_gaussian = imnoise(img_original,'gaussian',0,0.01);
% Add Salt & Pepper noise density=0.05
noisy_sp = imnoise(img_original,'salt & pepper',0.05);
subplot(2,2,[2 3]);
imshow(noisy_gaussian);title('Image with Gaussian Noise');
imshow(noisy_sp);title('Image with Salt & Pepper Noise');
```
#### 3. 应用中值滤波器消除噪声
面对上述提到的不同种类的噪声污染情况,采取适当的空间域平滑策略显得尤为重要。特别是当遇到脉冲型(即椒盐)噪声时,非线性的中值滤波往往能提供更好的恢复效果。该过程可通过定义一个窗口尺寸(如3×3),遍历整个图像区域寻找局部极值来进行去噪处理。
```matlab
filtered_median_gauss = medfilt2(noisy_gaussian,[3 3],'symmetric');
filtered_median_saltpepper = medfilt2(noisy_sp,[3 3],'symmetric');
subplot(2,2,4);
imshow(filtered_median_saltpepper);title('Denoised by Median Filter');
```
除了空间域的方法之外,频率域下的滤波手段也被广泛应用到实际应用当中。例如低通滤波器用于抑制高频成分达到降噪目的的同时尽可能保持原有信号特性不变;相反地,高通滤波则有助于增强边界信息使得图像更加清晰锐利。然而值得注意的是,不同类型的滤波器其性能表现会受到诸如截止频率设定等因素的影响,而且复杂度较高的算法可能会带来更大的运算负担[^2]。
阅读全文
相关推荐


















