关于点云数据结构的建议

Advice on data structure for point clouds

我想使用 C# 中的数据结构来存储三维点并使用最近邻搜索、半径搜索和可能的其他操作。 目标是实现分割、三角测量、过滤(中值和可能的其他)、测量、匹配和其他东西。

我发现 k-d 树和八叉树是这项工作最常用的数据结构。由于可以从点云中添加或删除点是必要的,因此八叉树似乎是可行的方法。你知道反对他们的理由吗?

但是,由于有必要添加新的点,如果有一个点在我的八叉树的边界之外,我将不得不重新创建整棵树,因为我的维度已经改变。有没有解决的办法?这听起来很昂贵,而且现在我不能说它是否会经常发生,但我想为此做好准备。

是否有关于八叉树及其操作的 website/paper,尤其是 knn 和半径搜索?我找到了像 PCL 这样的库,但是对操作的描述而不仅仅是代码会有很大帮助。

关于八叉树算法的不错博客 https://geidav.wordpress.com/2014/07/18/advanced-octrees-1-preliminaries-insertion-strategies-and-max-tree-depth/

这是关于 space 感知数据结构的圣经 Foundations of Multidimensional and Metric Data Structures – August 22, 2006 by Hanan Samet