使用ExtractIndices类:
- 将要删除的点添加到PointIndices变量中
- 将这些指数传递给ExtractIndices
- 运行filter()方法
获得减去目标点云的点云数据。pcl::PointCloud<pcl::PointXYZ>::Ptr p_obstacles(new pcl::PointCloud<pcl::PointXYZ>); pcl::PointIndices::Ptr inliers(new pcl::PointIndices()); pcl::ExtractIndices<pcl::PointXYZ> extract; for (int i = 0; i < (*p_obstacles).size(); i++) { pcl::PointXYZ pt(p_obstacles->points[i].x, p_obstacles->points[i].y, p_obstacles->points[i].z); float zAvg = 0.5f; if (abs(pt.z - zAvg) < THRESHOLD) // e.g. remove all pts below zAvg { inliers->indices.push_back(i); } } extract.setInputCloud(p_obstacles); extract.setIndices(inliers); extract.setNegative(true); extract.filter(*p_obstacles);