pcl :: CropBox унаследовал filter (std::vector< int > &indices)
, поэтому вы должны иметь возможность вызывать его, чтобы получить индексы, которые лежат в рамке , см. Здесь для справки
pcl::CropBox<pcl::PointXYZ> boxFilter;
...
#
std::vector<int> indices_inside;
boxFilter.filter(indices_inside);
Если вам нужны точки вне коробки, вы можете получить их с помощью std :: set_difference , например
std::vector<int> all_points(cloud.size());
std::iota(all_points.begin(), all_points.end()) // fill with 0, 1, 2, ..., n
std::vector<int> indices_inside = ...(from previous);
std::vector<int> indices_outside;
// process: indices_outside = all_points - indices_inside
std::set_difference(all_points.begin(), all_points.end(),
indices_inside.begin(), indices_inside.end(),
std::inserter(indices_outside, indices_outside.begin()));