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 的工作原理。
我想使用 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 的工作原理。