PCL:八叉树(Octree)实现点云半径内近邻搜索

本文介绍了八叉树(Octree)数据结构在三维空间点云处理中的应用,特别是用于半径内近邻搜索。八叉树通过递归划分将空间分解为小立方体,实现高效查找。文章展示了代码实现和结果,指出分辨率对搜索速度的影响,并建议在特定情况下使用kd-tree。

1 八叉树 Octree

八叉树(Octree)结构是由 Hunter 博士于1978年首次提出的一种数据模型。八叉树结构通过对三维空间的几何实体进行体元剖分,每个体元具有相同的时间和空间复杂度,通过循环递归的划分方法对三维空间的几何对象进行剖分,从而构成一个具有根节点的方向图。在八叉树结构中如果被划分的体元具有相同的属性,则该体元构成一个叶节点;否则继续对该体元剖分成8个子立方体,依次递剖分,如下示意图所示。
在这里插入图片描述

八叉树是一种用于描述三维空间的树状数据结构。八叉树的每个节点表示一个正方体的体积元素,每个节点有八个叶子节点,这八个叶子节点所表示的体积元素加在一起就等于父节点的体积。一般中心点作为节点的分中心。八叉树若不为空树的话,树中的任意节点的子节点恰好只会有八个或零个,子节点不会有0和8以外的数目。

八叉树的分辨率是指最低一级的叶子节点的尺寸。如果分辨率设置为0.01m,那么每个叶子节点就是一个1cm的小方块。

简单来说,八叉树的存储结构可用于对应元素的查找,依次对立方体进行划分,寻找查找元素对应的小立方体再次进行划分查找。

生成的八叉树的节点可分为三类:

  • 灰节点: 它对应的立方体部分的为查找元素所占据;
  • 白节点: 它对应的立方体没有查找元素的内容;
  • 黑节点: 它对应的立方体全部为查找元素所占据。

参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

孙 悟 空

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

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

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

打赏作者

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

抵扣说明:

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

余额充值