🟠 区域增长点云分割
功能描述
区域增长算法是一种基于表面法线方向的分割方法,基本流程是:选择从一个或者多个起始点(称为种子点)开始,迭代地检查其邻近点,如果邻近点的法向与当前区域的法向足够相似(即表面足够平滑),就将其合并到当前区域中。这个过程不断重复,直到区域无法再向外“增长”为止。
使用场景
-
表面分割:非常适合将由不同平面或平滑曲面组成的场景进行分割。
-
零件特征识别:用于分离零件上的不同平面、曲面、凹槽等几何特征。
-
基于边界的物体分离:当一个物体放置在另一个物体的表面上时(如桌上的杯子),只要它们接触的边界处存在明显的角度变化(法向突变),该算法就能有效地将它们分离开。
参数说明
邻近点数
参数说明 |
在为每个点判断其局部区域特性时,设置需要查找距离它最近的K个邻居点的数量。 |
调参说明 |
|
参数范围 |
[0,1000],默认值:5 |
法向差异阈值
参数说明 |
设置区域增长的核心平滑度标准。只有当一个邻近点的法向量与当前区域基准点的法向量之间的夹角小于此阈值时,该邻近点才可能被合并到区域中。 |
调参说明 |
|
参数范围 |
[0,180],默认值:10,单位:° |
差异阈值
参数说明 |
差异阈值用于辅助判断平面平滑度,将基准点和某个邻近点连成一条线,看这条线在基准点法线方向上的“投影”长度,该长度表示邻近点偏离基准点所在平面的程度。如果这个距离很小,说明邻近点几乎就在基准点的平面上,表面很平滑;如果这个距离很大,说明邻近点偏离了基准点的平面,表面有弯曲或突起。 |
调参说明 |
在处理纯平面时,可以将此值设得较小;在处理曲面时,则需要根据曲率适当增大此值。 |
参数范围 |
[0,100000],默认值:10 |
聚类最少点数
参数说明 |
后处理筛选条件,聚类完成后,点数少于此值的簇都将会被过滤。 |
调参说明 |
适用于过滤掉那些由少量点组成的、无意义的小噪声簇,适当提高此值来确保输出的是有意义的聚类结果。 |
参数范围 |
[1,4000000],默认值:100 |
聚类最多点数
参数说明 |
后处理筛选条件,聚类完成后,点数多于此值的簇都将会被过滤。 |
调参说明 |
适用于需要排除某个非常大的背景或支撑面的场景。例如,如果想忽略掉桌面,只分析桌面上的小物体,可以设置一个上限来过滤掉代表桌面的那个最大的点云簇。 |
参数范围 |
[1,4000000],默认值:4000000 |
启用排序
参数说明 |
是否对最终输出的所有点云簇(汇集了所有输入点云的分割结果)按点云数量从大到小进行全局排序。 |
调参说明 |
开启(True):输出的点云簇列表将严格按照点数从多到少排列。 关闭(False):输出的点云簇顺序可能不固定。 |
保留全部结果
参数说明 |
控制对于输入的每一块点云,是输出其全部分割结果,还是只保留部分。 |
调参说明 |
开启(True):默认选项,保留所有找到的、且满足点数限制的簇。 关闭(False):将只保留由“保留结果数量”参数指定的前N个最大的簇。 |