一、算法原理
SamplingSurfaceNormal 是一种基于递归空间划分的点云法线估计算法。其核心流程是:首先递归地将点云空间划分为若干子区域,确保每个子区域包含的点数较少;然后分别对这些小区域内的点云进行法线估计。该算法创新性地结合了空间划分(采用最大维度分割策略)与采样技术,从而实现了高效的点云表面法线计算。
- 递归划分点云空间:
计算每个点云在各个维度(x、y、z)的范围,并选择具有最大范围的维度作为划分维度(cutDim),根据划分维度对点云数据进行排序,找到中位数(cutIndex),并根据中位数将点云分成左右两部分。对左半部分和右半部分继续进行相同的划分操作,直到每部分点云的数量小于或等于sample_(在samplePartition方法中进行采样)。
- 计算法线
通过计算各分割区域的协方差矩阵,将其最小特征值对应的特征向量确定为区域法线,并将最小特征值与特征值总和的比值作为该区域的曲率度量。
- 采样输出
算法在每个子区域内随机选取采样点,并将该区域计算的法线赋予这些采样点。
二、底层细节
&nb