均值滤波、高斯滤波、中值滤波的原理与适用场景有何不同?

# 均值滤波、高斯滤波、中值滤波对比 三者都是**空间域滤波**(用邻域像素计算中心像素的新值),但原理和效果差异很大。 --- ## 1. 均值滤波(Mean Filter) **原理**:取邻域内所有像素的**算术平均**作为中心像素的新值。 $$g(x,y) = \frac{1}{m \times n} \sum_{(i,j) \in S} f(i,j)$$ **特点** - 线性滤波,实现最简单、速度最快 - 对**高斯噪声**有一定平滑作用 - 缺点:对**离群点(脉冲噪声)**敏感——一个极端值会拉偏整个邻域的平均值 - 边缘被严重模糊(边缘两侧像素被平均混合) **适用场景**:对噪声不敏感、追求速度的简单平滑;图像预处理中的粗略降噪。 --- ## 2. 高斯滤波(Gaussian Filter) **原理**:邻域内像素**加权平均**,权重服从二维高斯分布,**中心权重最大、越远越小**。 $$G(x,y) = \frac{1}{2\pi\sigma^2} e^{-\frac{x^2+y^2}{2\sigma^2}}$$ **特点** - 线性滤波,是均值滤波的"加权改进版" - 权重平滑过渡,不会像均值滤波那样产生生硬的块状效应 - 对**高斯噪声**效果最好(高斯噪声在统计上最匹配高斯核) - 相比均值滤波,**边缘保留更好**(中心像素权重高,受远处像素影响小),但仍会模糊边缘 - 计算量略大于均值滤波 **适用场景**:高斯噪声去除;**边缘检测前的预处理**(如 Canny 的第一步);尺度空间构建(高斯金字塔);图像模糊/美颜。 --- ## 3. 中值滤波(Median Filter) **原理**:取邻域内所有像素的**中位数**作为中心像素的新值(非线性滤波)。 **特点** - **非线性滤波**,不涉及加权求和 - 对**椒盐噪声(脉冲噪声)效果极佳**——极端值(0 或 255)不会影响中位数 - **能很好地保留边缘**:边缘两侧像素值差异大时,中位数会落在其中一侧,不会像线性滤波那样把两侧"混合"成过渡带 - 缺点:对高斯噪声效果一般;计算量较大(需要排序);邻域过大时可能产生"阶梯效应" **适用场景**:椒盐噪声去除(如老照片扫描、传感器故障图像);需要**保边降噪**的场景;医学图像、文档图像预处理。 --- ## 对比总结 | 维度 | 均值滤波 | 高斯滤波 | 中值滤波 | |------|---------|---------|---------| | 类型 | 线性 | 线性 | **非线性** | | 权重 | 等权平均 | 高斯加权 | 取中位数 | | 高斯噪声 | 一般 | **最好** | 一般 | | 椒盐噪声 | 差(被拉偏) | 差 | **最好** | | 边缘保留 | 差 | 中 | **好** | | 计算复杂度 | 最低 | 中 | 较高(需排序) | | 典型场景 | 快速粗略平滑 | 高斯去噪、边缘检测预处理 | 椒盐去噪、保边降噪 | ## 一句话总结 > **均值滤波**是"平均一下"(简单但糊边、怕离群点),**高斯滤波**是"按距离加权平均"(去高斯噪声最优、边缘稍好),**中值滤波**是"取中间值"(专治椒盐噪声、最能保边)。 --- ## 纯 Python 实现示例(无第三方依赖) ````python def median_filter(pixels, width, height, k=3): """中值滤波:对灰度图(pixels 为二维列表)做 k×k 中值滤波""" pad = k // 2 result = [[0] * width for _ in range(height)] for y in range(height): for x in range(width): window = [] for dy in range(-pad, pad + 1): for dx in range(-pad, pad + 1): ny, nx = y + dy, x + dx # 边界处理:越界时取最近的有效像素(复制边缘) ny = max(0, min(height - 1, ny)) nx = max(0, min(width - 1, nx)) window.append(pixels[ny][nx]) window.sort() result[y][x] = window[len(window) // 2] return result ```` **面试高频追问**:为什么中值滤波能保留边缘而均值不能?——均值滤波把边缘两侧的像素**混合平均**,产生过渡带(模糊);中值滤波取的是排序后的**中间值**,只要窗口内一侧像素占多数,中位数就落在该侧,边缘被完整保留。这也是中值滤波被称为"保边滤波器"的原因。

openCV

**关于均值滤波下列说法正确的是( )**

openCV

**在图像增强中,得到边缘锐化、对比度增强的图像,下列说法正确的是( )**

下载 APP