PCL点云处理之KD树搜索邻近点的两种模式(九十五)

PCL点云处理之KD树搜索邻近点的两种模式(九十五)

  • 一、算法介绍
  • 二、使用步骤
    • 1.代码
  • 总结

一、算法介绍

通常我们想要知道距离查询点一定半径邻域内的点云,或者距离查询点最近的K个点,PCL中提供了这两种搜索方法的接口,基于KD树实现,并不需要具体了解KD树的内层原理,只要直接调用接口即可实现我们想要的效果,非常简单。

K-d 树,或 k-d树,是计算机科学中用来组织 k 维空间中若干点的一种数据结构。这是一个二叉查找树,还受到其它限制。K-d 树对于范围搜索和最近邻搜索非常有用。对于我们的目的,我们一般只处理三维的点云,所以我们的所有 k-d 树都是三维的。K-d 树的每一层使用垂直于对应轴的超平面沿特定维度分割所有子元素。在树的根部,所有的子元素都会根据第一个维度进行分割(也就是说,如果第一个维度坐标小于根,那么它就会在左边的子树中,如果它大于根,那么它显然就会在右边的子树中)。树的每一层都在下一维度上分裂,一旦所有其他维度都耗尽,就返回第一维度。构建 k-d 树最有效的方法是使用一种分区方法,比如 Quick Sort 用来将中间点放置在根处,将一维值较小的部分放置在左侧,而将一维值较大的部分放置在右侧。然后在左边和右边的子树上重复这个过程,直到要分区的最后一棵树只由一个元素组成。

你可能感兴趣的:(PCL点云处理学习,点云分类,算法)