一、检测原理介绍
Octree是一种管理稀疏3D数据的树状结构,利用Octree实现多个无序点云之间的空间变化检测,这些点云可能在尺寸、分辨率、 密度和点顺序等方面有所差异,通过递归的比较Octree的树结构,可以鉴定出由Octree产生的体素组成的区别所代表的空间变化,并且通过Octree的“双缓冲”技术,可以实时的探测多个点云之间的空间组成的差异。
对无序点云在空间变化上的检测,其实是对前后两幅点云在八叉树结构下的差异检测。因此我们要首先载入一个原始点云,并生成第一个八叉树结构;然后切缓冲,载入第二个点云,生成第二个八叉树结构;最后进行比较,如果有一些叶子结点在第二个八叉树上,但是不在第一个八叉树上,那么就认为这些叶子节点内的点是空间上变化多出来的点。
二、主要函数及代码实现
1、主要函数
/** \brief Get a indices from all leaf nodes that did not exist in previous buffer.
* \param indicesVector_arg: results are written to this vector of int indices