PCL:如何从 PCL 1.8.1 中的 k 均值聚类中提取聚类标签?

PCL: How to extract cluster label from k-means clustering in PCL 1.8.1?

我想使用 k-means 聚类算法为我在 PCL 1.8.1 中的点提取标签。根据docs,有一个受保护的属性PointsToClusters。 关于如何访问此属性或如何以其他方式提取集群的任何想法?

谢谢!

pcl::Kmeans real(static_cast<int> (cloud->points.size()), 3);
real.setClusterSize(nominalClusterNumber);
for (size_t i = 0; i < cloud->points.size(); i++)
    {
        std::vector<float> data(3);
        data[0] = cloud->points[i].x;
        data[1] = cloud->points[i].y;
        data[2] = cloud->points[i].z;
        real.addDataPoint(data);
    }
real.kMeans();

对于那些感兴趣的人 - 这很容易。提供 PCL 的质心,您已经有了答案。只需计算每个点到所有质心的距离,并根据最近的质心标记它们。这就是 KMeans 的工作原理。