图像平滑处理:原理与实战
在计算机视觉任务中,原始图像往往伴随着各种噪声。本章重点讲解如何通过平滑滤波技术抑制噪声,为后续的边缘检测、特征提取等任务提供干净的输入。
1. 通俗理解:什么是图像平滑?
想象你用手机拍了一张夜景照片,放大后发现有很多彩色小点(噪点);或者扫描一张老报纸,纸上出现很多黑白杂点。
图像平滑 = 给图像'磨皮'或'柔化'
目的是抑制噪声、模糊细节,使图像更平滑。但要注意:平滑 ≠ 越模糊越好。我们必须在'去噪'和'保留细节'之间找到平衡。
2. 常见噪声类型与对应策略
| 噪声类型 | 视觉表现 | 成因 | 推荐滤波方法 |
|---|---|---|---|
| 高斯噪声 | 随机分布的微小亮度变化(像雾) | 传感器热噪声、电子干扰 | 高斯滤波 |
| 椒盐噪声 | 随机出现的纯黑/纯白像素点 | 信号传输错误、坏像素 | 中值滤波 |
| 均匀噪声 | 像素值在固定范围内随机波动 | 量化误差 | 均值或高斯滤波 |
🎯 核心思想:滤波器通过邻域像素加权平均来替代中心像素,从而'平均掉'异常值。
3. 三大平滑滤波方法详解
3.1 均值滤波(Mean / Box Filter)
原理:用一个方形窗口(如 5×5),对窗口内所有像素取算术平均值,替换中心像素。
- 简单粗暴,计算快
- 缺点:严重模糊边缘和细节
🔧 函数:cv2.blur(src, ksize)
blurred = cv2.blur(img, (5, 5)) # 5x5 均值核
ksize:核大小(必须是正奇数,如 3, 5, 7)
3.2 高斯滤波(Gaussian Blur)
原理:使用高斯函数作为权重,中心像素权重最大,越远权重越小。
👉 既能去噪,又能较好保留边缘!这是最常用、最推荐的通用去噪方法。
🔧 函数:cv2.GaussianBlur(src, ksize, sigmaX)
gaussian = cv2.GaussianBlur(img, (5, 5), )


