PCL: как извлечь метку кластера из кластеризации k-средних в PCL 1.8.1?

Я хотел бы использовать алгоритм кластеризации k-средних для извлечения меток для моих точек в 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();

person fransinn    schedule 03.05.2019    source источник
comment
Здесь вам поможет не C ++. Это PCL .. Сделайте это сообщество своей основной целью. Я бы хотел посмотреть, к чему это приведет, потому что мне это нравится, но я не могу вам помочь, боюсь.   -  person Ted Lyngmo    schedule 03.05.2019


Ответы (1)


Для желающих - это довольно просто. Получив центроиды с помощью PCL, у вас уже есть ответ. Просто вычислите для каждой точки расстояние до всех центроидов и пометьте их в соответствии с ближайшим центроидом. Вот как работает KMeans.

person fransinn    schedule 06.05.2019