PCL:官方程序 Region growing segmentation
区域增长分割(算法不是很懂,有特别明白的可以给我讲讲疑问部分???)
在本教程中,我们将学习如何将pcl:: regiongrow cla在用实现区域增长算法。该算法的目的是在平滑约束条件下,将足够接近的点进行归并。因此,该算法的输出是一组簇,每个簇是一组点,这些点被认为是同一光滑曲面的一部分。该算法的工作是基于各点法线夹角的比较。
理论基础:
让我们看看这个算法是如何工作的。
首先,它根据曲率值对点进行排序。这样做是因为这个区域是从曲率值最小的点开始生长的。这样做的原因是曲率最小的点位于平面区域(从最平的区域开始生长可以减少区域块的总数)。
首先给点云排序(是上一步的按照曲率最小值排序吧????)直到云中有未标记的点(官网这句话啥意思????????),该算法选取曲率值最小的点,开始区域增长。这一过程如下:
(1)The picked point is added to the set called seeds.(该点是任意选择的吗????)选取点添加到点集中,该点集称为种子节点。
(2)对于每个种子点,算法都要找到相邻的点。
2.1 每个相邻的种子点都要计算其法线和当前种子点法线之间的夹角。如果角度小于阈值,则将当前点添加到当前区域中。
2.2 然后对每个邻居进行曲率值测试。如果曲率小于阈值,则将该点添加到种子中。
2.3 将当前种子从种子中移除。
(3)如果种子集变成空的,这意味着算法已经完成了区域生长算法,之后从开始将该过程进行重复。下面是该算法的伪代码:
(4)输入: (5)初始化:
(6)算法: