// 这是一个函数,用于获取点云中的分支点,参数为一个存放分支点的 vector void getBranchPoints(vectorpcl::PointIndices& branchPoints) { // 循环遍历点云中的每个点 for (int i = 1; i < n; i++) { int u = i; // 如果当前点有父节点,并且它与父节点的距离等于其在邻接矩阵中的权值 while (parent[u] != -1 && adj[u][parent[u]] == dist[u]) { u = parent[u]; // 继续向上查找父节点 } // 如果当前点有父节点,说明它是一个分支点,将其加入到分支点的 vector 中 if (parent[u] != -1) { branchPoints.push_back(u); } } };

// 定义一个存放分支点的 vector,并调用 getBranchPoints 函数获取分支点 vectorpcl::PointIndices branchPoints; getBranchPoints(branchPoints);

点云分支点提取算法实现 - C++ 代码示例

原文地址: https://www.cveoy.top/t/topic/odBz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录