DBSCAN点云聚类 |
您所在的位置:网站首页 › 雷达dbs › DBSCAN点云聚类 |
1、DBSCAN算法原理
DBSCAN是一种基于密度的聚类方法,其将点分为核心点与非核心点,后续采用类似区域增长方式进行处理。下图为DBSCAN聚类结果,可见其可以对任意类别的数据进行聚类,无需定义类别数量。 DBSCAN聚类说明
从已有的聚类效果上来看,将一些点定义成噪声点,没有进行聚类。因此也可以理解成这样:先对点进行去噪处理,再使用距离聚类(如欧氏聚类)实现点的聚类。 对三维点云数据的聚类结果如下: 2、源码下载基于C++编写的源代码下载地址: https://download.csdn.net/download/qq_32867925/86246799 只需要将三个头文件加载到工程中即可 DBSCAN核心代码: DBSCANKdtreeCluster ec; ec.setCorePointMinPts(10); // test 4. uncomment the following line to test the EuclideanClusterExtraction // pcl::EuclideanClusterExtraction ec; pcl::search::KdTree::Ptr tree(new pcl::search::KdTree); tree->setInputCloud(cloud); std::vector cluster_indices; ec.setClusterTolerance(0.1);//搜索近邻点半径 ec.setMinClusterSize(100);//最小簇点数要求 ec.setMaxClusterSize(5000000);//最大簇点数限制 ec.setSearchMethod(tree); ec.setInputCloud(cloud); ec.extract(cluster_indices); clock_t end_ms = clock(); std::cout pcl::PointXYZI tmp; tmp.x = cloud->points[*pit].x; tmp.y = cloud->points[*pit].y; tmp.z = cloud->points[*pit].z; tmp.intensity = j % 8; cloud_clustered->points.push_back(tmp); } } 2、聚类效果
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |