pclPointCloudpclPointXYZPtr singlejiediannew pclPointCloudpclPointXYZ;int begin2 = 0;for const auto& pair countMapif pairsecond == 1pclPointXYZ point3 = cloud-pointspairfirst;stdstringstream sb;sb b
这段代码的作用是在点云中标记出只出现一次的点,并将这些点存储在singlejiedian点云中。
首先,定义了一个PointCloudpcl::PointXYZ::Ptr类型的指针singlejiedian,用于存储只出现一次的点。
然后,使用循环遍历countMap中的每个元素。countMap是一个map,其中键是点云索引,值是该点在点云中出现的次数。
在循环中,如果某个点的出现次数为1(即pair.second == 1),则执行以下操作:
- 通过索引pair.first获取点云中的对应点pcl::PointXYZ point3。
- 创建一个字符串流sb,用于生成标识符。
- 将点的索引转换为字符串并附加到sb中。
- 使用viewer.addSphere函数在可视化窗口中添加一个球体,球体的位置为点的坐标,半径为0.0023,颜色为红色,标识符为sb.str()。
- 将点添加到singlejiedian点云中。
最后,singlejiedian点云中存储了所有只出现一次的点,并在可视化中以红色球体的形式标记出来。
原文地址: https://www.cveoy.top/t/topic/ieJk 著作权归作者所有。请勿转载和采集!