如何在 C++ 中使用 `pcl`(点云库)从 std::vector<int> 创建 pcl::PointIndices?

How to create pcl::PointIndices from std::vector<int> with `pcl`(Point Cloud Library) in c++?

我在 C++ 中使用 pcl,很抱歉无法创建 pcl 标签。

我正在使用 pcl 实现点云分割的管道。我想知道如何从 std::vector<int> 类型的提取索引中创建 pcl::PointIndices,这样我就可以将它输入到另一个过滤器中。

第一个过滤器可以生成 std::vector

类型的索引
// Create statistical filtering object
pcl::StatisticalOutlierRemoval<PointXYZ> sor;
CloudXYZPtr sor_filtered (new CloudXYZ);
std::vector<int> sor_inliers;

sor.setInputCloud (input);
sor.setMeanK (10);
sor.setStddevMulThresh (0.5);
sor.filter (sor_inliers);

然后,我想将这个过滤后的事件输入到另一个过滤器中,例如:

pcl::RadiusOutlierRemoval<PointXYZ> ror;
pcl::PointIndices::Ptr ror_indices (new pcl::PointIndices);
ror_indices->data = sor_inliers;  // #### How to do this line?
std::vector<int> ror_inliers;

//I can set it like
ror.setInputCloud(input);
ror.setIndices(ror_indices);

如何让它发挥作用?谢谢。

这个:

ror_indices->data = sor_inliers;  // #### How to do this line?

应该是:

ror_indices->indices = sor_inliers;