1. 原理概述
高斯滤波利用了高斯函数经傅里叶变换后仍具有高斯函数的特性。令指定区域的权重为高斯分布,从而将高频的噪声点滤除。具体是将某一数据点与其前后各 n n n个数据点加权平均,那些远大于操作距离的点被处理成固定的端点,这有助于识别间隙和端点。由于高斯滤波平均效果较小,在滤波的同时,能较好地保持数据原貌,因而常被使用。
2. 实现流程
点云高斯滤波是一种在三维点云数据上应用高斯滤波器的技术。在点云高斯滤波中,每个点的邻域被加权平均,以产生平滑的点云,权重由一个高斯分布函数计算。在三维空间中函数形式为
G = e − d 2 2 σ 2 (1) G=e^{-\frac{d^2}{2\sigma^2}}\tag{1} G=e−2σ2d2(1)
式中, d d d为点云中每个点到邻域点的距离; σ σ σ为高斯函数的标准差。
对于每个点,高斯滤波器将其邻域内的所有点乘以一个对应的高斯权重,然后将其加权平均。过程公式为:
F ( x , y , z ) = ∑ i = 1 N p i G ( ∣ ∣ p i − p o ∣ ∣ ) ∑ i = 1 N G ( ∣ ∣ p i − p o ∣ ∣ ) (2) F(x,y,z)=\frac{\sum_{i=1}^Np_iG(||p_i-p_{o}||)}{\sum_{i=1}^NG(||p_i-p_{o}||)}\tag{2} F(x,y,z)=∑i=1NG(∣∣pi−po∣∣)∑i=1NpiG(∣∣pi−po∣∣)(2)
式中, p o p_o po为当前点的坐标值; p i p_i pi为邻域内第 i i i个点的坐标值; N N N为邻域内的点数; G ( p i − p o ) G(p_i-p_{o}) G(pi−po)为第 i i i个点的高斯权重,它与第 i i i个点与当前点的距离 p i − p o p_i-p_{o} pi−po有关; F ( x , y , z ) F(x,y,z) F(x,y,z)为滤波后点的坐标值。
3. 软件实现
1、找到高斯滤波功能
2、设置参数
选择一个“内核”大小(实际上是球体的半径,在该半径中,将在每个点周围提取最近的邻居以计算平均值)。滤波器越大越强(计算速度越慢…)。
4. 结果展示
滤波前
滤波后
差距不够明显??放个明显的图