解释代码void generateSkeletonpclPointCloudpclPointXYZPtr cloud pclPointCloudpclPointXYZPtr skeleton 参数为输入点云cloud和输出点云skeleton 创建一个图 int n = cloud-size; stdvectorEdge edges; 创建边容器 for int i = 0; i n; i
该函数的功能是将输入点云cloud进行骨架化处理,输出结果保存在输出点云skeleton中。
具体实现步骤如下:
-
创建一个图,其中图的每个节点对应输入点云cloud中的一个点,图的每条边对应任意两个点之间的距离。
-
对边按照权重(即边的距离)进行排序。
-
创建一个并查集,每个节点的父节点初始值为自身。
-
依次加入边,构建最小生成树。对于每一条边,找出其两个端点所在的并查集的根节点,如果两个节点的根节点不同,则将这两个节点合并到同一个并查集中,并将这两个节点对应的点加入到输出点云skeleton中。
-
最终得到的输出点云skeleton即为输入点云cloud的骨架化结果。
原文地址: https://www.cveoy.top/t/topic/eB3E 著作权归作者所有。请勿转载和采集!