首页 > 解决方案 > PCL:如何从 PCL 1.8.1 中的 k-means 聚类中提取聚类标签?

问题描述

我想使用 k-means 聚类算法为我在 PCL 1.8.1 中的点提取标签。根据文档,有一个受保护的属性 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();

标签: c++k-meanspoint-cloud-library

解决方案


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


推荐阅读