c++ - 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();
解决方案
对于那些感兴趣的人 - 这很容易。提供 PCL 的质心,您已经有了答案。只需计算每个点到所有质心的距离,并根据最近的质心标记它们。这就是KMeans的工作原理。
推荐阅读
- java - 如何在共享偏好中保存搜索栏拇指位置
- ios - 试图将数组移动到表格视图
- mainframe - 在大型机 (USS) 上自定义 Rocket bash
- python - 我想将语言代码添加到路径中,以便它可以是 /language_code
- sql - 如何使 SQL 数据库表中的多个列唯一
- dynamic - CX_SY_STRUCT_COMP_NAME=>illegal_char_in_name 在使用 RTTS 创建类型时
- python - 获得一个普通的 Python
- python - matplotlib:改变条的位置
- html - Bootstrap 4 在 XL 屏幕上将列扩展到侧边栏,否则在两个内容区域之间排序
- typescript - 使用 Typescript 初始化 DataLoader 时出现类型错误