【小白深度教程 1.20】手把手教你使用 Open3D(2)点云聚类、分割和重建(含 Python 代码)
1. 表面重建概念
在许多场景中,我们需要生成密集的 3D 几何体,例如三角网格。然而,从多视图立体方法或深度传感器中,我们只能获得非结构化的点云。为了从这些非结构化输入中生成三角网格,我们需要执行表面重建。在文献中有多种方法,而 Open3D 目前实现了以下几种:
- Alpha 形状 [Edelsbrunner1983]
- 球形旋转 [Bernardini1999]
- 泊松表面重建 [Kazhdan2006]
2. Alpha 形状
Alpha 形状 [Edelsbrunner1983] 是凸包的泛化。正如这里所描述的,可以直观地将 Alpha 形状理解为:想象一大块包含点集 S 的冰激凌,这些点是硬质巧克力块。使用一个球形的冰激凌勺,我们挖出所有能够在不碰到巧克力块的情况下从冰激凌块中取出的部分,甚至挖出内部的孔洞(例如,不能从外部简单移动勺子就能到达的部分)。最终得到的是一个由盖帽、弧和点界定的对象(不一定是凸的)。如果我们将所有的圆形面拉直为三角形和线段,那么我们