基于pcl库将点P1从容器stdvectorpclPointCloudpclPointXYZRGBPtr clouds;内删除的c++代码
下面是基于pcl库将点P1从容器std::vector<pcl::PointCloudpcl::PointXYZRGB::Ptr> clouds;内删除的C++代码示例:
pcl::PointXYZRGB p1; // 假设点P1是pcl::PointXYZRGB类型的对象
std::vector<pcl::PointCloud<pcl::PointXYZRGB>::Ptr>::iterator it; // 迭代器
// 遍历容器
for (it = clouds.begin(); it != clouds.end(); ++it) {
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud = *it; // 获取当前指针指向的点云数据
// 在当前点云数据中查找并删除点P1
for (size_t i = 0; i < cloud->size(); ++i) {
if ((*cloud)[i].x == p1.x && (*cloud)[i].y == p1.y && (*cloud)[i].z == p1.z) {
cloud->erase(cloud->begin() + i); // 删除点P1
break; // 找到并删除点P1后跳出循环
}
}
}
以上代码使用迭代器遍历容器clouds中的每个点云数据,对于每个点云数据,它会在其中查找并删除与点P1相同坐标的点。注意,此代码假设点云数据是指针类型的智能指针,因此需要使用*解引用操作符获取实际的点云数据
原文地址: https://www.cveoy.top/t/topic/iHwE 著作权归作者所有。请勿转载和采集!