给定索引提取子集
#include <pcl/point_types.h>
#include<pcl/io/pcd_io.h>
#include <pcl/filters/extract_indices.h>
int
main(int, char**)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_in(new pcl::PointCloud<pcl::PointXYZ>);
pcl::io::loadPCDFile("boundary.pcd",*cloud_in);
std::cout << "Cloud has " << cloud_in->points.size() << " points." << std::endl;
//-----------根据索引提取点云------------------
// 1、取得需要的索引
pcl::PointIndices indices;
for (int i = 0; i < 10000; i++)
{
indices.indices.push_back(i);
}
// 2、索引提取器
pcl::ExtractIndices<pcl::PointXYZ> extr;
extr.setInputCloud(cloud_in);//设置输入点云
extr.setIndices(std::make_shared<const pcl::PointIndices>(indices));//设置索引
pcl::PointCloud<pcl::PointXYZ>::Ptr output(new pcl::PointCloud<pcl::PointXYZ>);
extr.filter(*output); //提取对应索引的点云
pcl::io::savePCDFileBinary("indicies.pcd",*output);
std::cout << "Output has " << output->points.size() << " points." << std::endl;
}