4、空域滤波基础:高斯滤波、双边滤波、非局部均值滤波

多帧HDR合成里,噪声抑制是个绕不开的坎。你想想看,多帧融合本身能压低随机噪声,但遇到运动物体、边缘闪烁,光靠帧平均就不够用了。这时候,空域滤波就得登场。

空域滤波,说白了就是在单帧图像上,用像素邻域的信息来平滑噪声。我刚开始做HDR时,总觉得空域滤波太“基础”,后来发现——基础的东西往往最考验功底。选错了滤波器,细节糊成一片,HDR的高动态范围优势全白费。

这一节,我带你过三种经典空域滤波器:高斯滤波、双边滤波、非局部均值滤波。它们各有脾气,用对了地方,噪声抑制效果天差地别。

4.1 高斯滤波:最朴素的平滑器

高斯滤波是所有空域滤波的起点。它的核心思想很简单:用邻域像素的加权平均来替代中心像素值,权重由高斯函数决定。

公式长这样:

G(x, y) = (1 / (2πσ²)) * exp(-(x² + y²) / (2σ²))

其中σ控制平滑强度。σ越大,邻域范围越广,平滑效果越强,但边缘也越模糊。

我在项目中遇到过一个问题:用高斯滤波处理HDR合成前的低曝光帧,结果高光区域的边缘全糊了。为什么?因为高斯滤波不考虑像素值差异,它一视同仁地平滑所有区域——包括边缘。

核心结论:高斯滤波适合平坦区域(天空、墙面)的噪声抑制,不适合边缘保留。在HDR多帧合成中,我通常只把它用在预处理阶段,比如去除传感器读出噪声。

参数 作用 典型值
σ(标准差) 控制平滑强度 0.5 ~ 3.0
核大小 邻域窗口尺寸 3×3, 5×5, 7×7

我的习惯:核大小取 6σ+1 的奇数。比如σ=1.0,核就用 7×7。这样能保证高斯函数的能量基本覆盖整个核。

4.2 双边滤波:边缘保留的进阶方案

高斯滤波的痛点在于“一刀切”。双边滤波就是为了解决这个问题诞生的。它在高斯滤波的基础上,加了一个像素值差异的权重项。

公式变成:

BF[I]_p = (1/W_p) * Σ G_s(||p - q||) * G_r(|I_p - I_q|) * I_q

其中G_s是空间权重(和高斯滤波一样),G_r是像素值权重。两个权重相乘,结果就是:

  • 平坦区域:像素值相近,G_r接近1,平滑效果强
  • 边缘区域:像素值差异大,G_r接近0,边缘被保留

听起来很完美,对吧?但实际用起来有坑。

我曾经踩过的坑:双边滤波的参数σ_s和σ_r需要仔细调。σ_r设太大,边缘保留效果消失,退化成高斯滤波;σ_r设太小,噪声根本压不下去。在HDR合成中,我建议σ_r取 0.1~0.3(像素值归一化到0~1),σ_s取 1.5~3.0。

另外,双边滤波的计算量比高斯滤波大不少。核大小固定时,双边滤波的复杂度是O(k²×N),k是核边长,N是像素数。实时处理时,我一般用分离核近似或查表法加速。

4.3 非局部均值滤波:自相似性的力量

非局部均值滤波(NLM)的思路和前面两种完全不同。它不只看邻域,而是搜索整张图像中与当前像素块相似的块,用这些相似块的均值来去噪。

核心公式:

NLM[I](i) = Σ w(i, j) * I(j)

其中权重w(i, j)由像素块i和像素块j的相似度决定:

w(i, j) = (1/Z(i)) * exp(-||B(i) - B(j)||² / h²)

B(i)和B(j)是以i、j为中心的图像块,h是滤波强度参数。

你想想看,NLM为什么效果好?因为它利用了图像的自相似性。纹理、边缘、甚至噪声模式,在图像中往往重复出现。用这些重复信息去噪,比单纯用邻域信息更鲁棒。

实际效果:在HDR多帧合成中,NLM对低曝光帧的噪声抑制效果明显优于双边滤波。尤其是暗部区域的彩色噪声,NLM能保留更多细节。但代价是计算量巨大——搜索整张图像,复杂度是O(N²)。

滤波器 边缘保留 计算复杂度 适用场景
高斯滤波 差 O(k²N) 预处理、平坦区域
双边滤波 好 O(k²N) 边缘保留去噪
非局部均值 极好 O(N²) 低曝光帧、暗部噪声

加速技巧:实际工程中,NLM的搜索范围可以限制在局部窗口(比如21×21),相似块数量也做截断。我常用的配置:搜索窗口21×21,相似块窗口7×7,h=0.4~0.6。这样速度能提升10倍以上,效果损失可接受。

4.4 三种滤波器的对比与选择

讲到这里,你可能会问:到底该用哪个?

我的建议是:

  • 高斯滤波:用在预处理阶段,去除传感器读出噪声。速度快,效果稳定。
  • 双边滤波:用在HDR合成前的单帧去噪,尤其是边缘需要保留的场景。参数调好了,效果很均衡。
  • 非局部均值滤波:用在低曝光帧的暗部区域,或者对画质要求极高的场景。计算量大,但效果最好。

我个人习惯在HDR合成流程中这样组合:先用高斯滤波做预处理,再用双边滤波做边缘保留去噪,最后对低曝光帧单独用NLM做精细处理。这样既控制了计算量,又保证了噪声抑制效果。

嗯,这里要注意:空域滤波只是噪声抑制的第一步。多帧HDR合成中,时域滤波(帧间滤波)和空域滤波的配合才是关键。下一节我们会深入时域滤波,到时候再细聊。

空域滤波基础:三种滤波器对比 高斯滤波 双边滤波 非局部均值滤波 特性 • 邻域加权平均 • 边缘模糊严重 • 计算复杂度低 • 适合平坦区域 特性 • 空间+值域权重 • 边缘保留较好 • 参数敏感 • 需调σ_s和σ_r 特性 • 自相似性搜索 • 边缘保留极好 • 计算复杂度高 • 适合暗部噪声 HDR合成中的典型组合 预处理(高斯)→ 边缘保留去噪(双边)→ 低曝光帧精细处理(NLM) 选择依据:计算资源、噪声强度、边缘保留需求