基于KDtree的点云欧氏距离聚类

1、欧氏聚类原理

      三维空间欧氏距离聚类算法中,涉及到唯一距离参数d。当点之间距离小于距离d 时,表明两点局部相连,属于同一簇点集。其中点之间相连满足如下性质:若点A 与点B 相连,点B 与点C 相连,则点A 与点C 也相连。

      需要注意的是,二维空间欧氏距离聚类算法是指将三维点云数据投影到二维平面(如xoy平面),再依据距离准则对点进行聚类。而三维空间欧氏距离聚类是指直接依据距离准则对点云数据进行聚类,无需对点进行投影。

      下图展示了基于二维空间欧氏距离聚类的原理,当距离阈值设置合理时,使用二维空间欧氏距离聚类算法对点进行聚类,所有的点被划分成左右两簇点集,并且两簇点云中任意两点相连。即对于一簇点中任意点,总能从该簇点中找到离该点距离小于d的另外一点。对于左边点集中C点,右边点集中距离C点最近的D点,两点之间距离大于距离阈值,经过聚类后C点与D点归属于两簇不同的点集。

 

                                                   二维欧氏距离聚类示意图 

2.编程思路

      随意选择一个点作为初始种子点,以该点为中心,使用KDTree以d为半径搜索近邻点,统计近邻点中不属于任何一簇点,则将该点添加进来。再以添加进来的点为中心,搜索近邻点,重复上述直至不再有点添加进来,即得到一簇点。对于上下的点,重复上述步骤直至所有的点划入到不同的簇中,结束。

基于欧氏距离的区域增长代码(C++),下载链接:

基于欧氏距离的三维点云聚类-算法与数据结构文档类资源-CSDN下载

     时间分析:在增长过程中反复使用kdtree搜索近邻点,其效率直接与kdtree效率挂钩。在实际中,以半径d=0.3m处理2100w个数据量时,耗时一个半小时。在处理几十万以内的点,基本可以5s内解决

3. 欧氏距离聚类可应用的场景

     林业中树木单体化处理:

                         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

点云实验室lab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值