PCL: как удалить определенный кластер из IndicesClusterPtr? - PullRequest
0 голосов
/ 06 февраля 2019

Я извлекаю вложенное облако из облака точек, используя ConditionalEuclideanClustering (согласно учебному пособию).IndicesClusterPtr имеет тип boost::shared_ptr<std::vector<pcl::PointIndices>>.Добавление элементов, кажется, работает.Я не могу удалить i-й кластер из clusters.Можете ли вы дать мне подсказку?

    pcl::IndicesClustersPtr clusters(new pcl::IndicesClusters);
    clusters->push_back( (*clusters2)[j])   //seems to be okay

    clusters->erase(i); // Nope
    (*clusters).erase(i); // Nope

    pcl::PointIndices empty_indices;   // compiles but results not as expected
    (*clusters)[i] = empty_indices;

1 Ответ

0 голосов
/ 06 февраля 2019

std::vector::erase принимает итератор в качестве входных данных.Так что вызывайте функцию erase следующим образом:

clusters->erase(clusters->begin()+i);
...