八叉树学习

八叉树(OcTree)

在这里插入图片描述
pcl的octree库提供了从点云数据创建具有层次的数据结构的方法。这样就可以对点数据集进行空间分区,下采样和搜索操作。每个八叉树节点有八个子节点或没有子节点。根节点描述了一个包围所有点的3维包容盒子。

pcl_octree实现提供了有效的最近邻居搜索(邻域搜索)API,例如“ 体素(Voxel)邻居搜索”,“ K最近邻居搜索”和“半径搜索邻居”。叶子节点类也提供其他功能,例如空间“占用率”和“每个体素(Voxel)的点密度”检查;序列化和反序列化功能可将八叉树结构有效地编码为二进制格式;此外,内存池实现减少了昂贵的内存分配和释放操作,以便快速创建八叉树。

下图说明了最低树级别的八叉树节点的体素边界框。八叉树体素围绕着兔子表面的每个3D点。红点代表点数据。该图像是使用octree_viewer创建的(visualization/tools/octree_viewer)。
在这里插入图片描述

https://robot.czxy.com/docs/pcl/chapter01/decomposition/

pcl_octree_viewer工具¶
a -> 增加显示深度(减小体素大小)
z -> 降低显示深度 (增加体素大小)
v -> 隐藏或显示octree立方体
b -> 隐藏或显示体素中心店
n -> 隐藏或显示原始点云
q -> 退出

三种搜索方式
● “体素内近邻搜索(Neighbors within VOxel Search)”
● “K近邻搜索(K Nearest Neighbor Search)”
● “半径内近邻搜索”(Neighbors within Radius Search)

点云压缩

官方文档这块有点云压缩的详细教程,PCL自带了相关压缩的API,需要用到OPENNI,目前没学这块,暂时用不到。留个地址,需要时候再用

https://pcl.readthedocs.io/projects/tutorials/en/latest/compression.html#octree-compression

八叉树的空间分区和搜索操作

代码和KD树基本一个套路,多了一种体素的搜索方式。
在这里插入图片描述
官方文档翻译过来的

https://pcl.readthedocs.io/projects/tutorials/en/latest/octree.html#octree-search

无组织点云数据的空间变化检测

看了下这块好像可以检索存储在当前八叉树结构(基于 cloudB)的体素中而在先前八叉树结构(基于 cloudA)中不存在的点,目前用不到,用到在详细探究。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值