Я работаю с библиотекой облака точек и извлекаю точки первого кластера после фильтрации облака точек и сегментации с помощью извлечения евклидова кластера. Следующий код, как я думаю, может сработать для извлечения точек кластера:
std::vector<pcl::PointIndices> cluster_indices;
typename pcl::search::KdTree<PointT>::Ptr tree (new pcl::search::KdTree<PointT>);
tree->setInputCloud(out_cloud);
pcl::EuclideanClusterExtraction<PointT> ec;
ec.setClusterTolerance(2 * 0.06);
ec.setMinClusterSize(50);
ec.setMaxClusterSize(1200);
ec.setSearchMethod(tree);
ec.setInputCloud(filtered_cloud);
ec.extract(cluster_indices);
int j = cluster_indices.size();
tam_cluster = cluster_indices[0].indices.size();
int ind_tmp;
for (int n=0; n<tam_cluster; n++){
ind_tmp=cluster_indices[0].indices[n];
first_clust->points.push_back (filtered_cloud->points[ind_tmp]);
}
std::cout << " ** Number of points of first cluster : " << first_clust->size() <<std::endl;
Итак, я не знаю почему, но иногда я получаю кластер с более чем 1200 точками. Я думаю, это может быть связано с pcl
реализацией извлечения кластеров.
Это правильный код?
typename
? - person wally   schedule 29.02.2016