我的总体目标是从嘈杂的点云描述一个表面,到一个规则的表面网格,在Python中。我已经找到了一些解决这个问题的方法,但没有一个适合我的情况。我找到的最好的:
- b样条→试一试->获得新的积分。这是基于一组常规的x,y坐标计算函数的z值,这对于接近垂直的表面不起作用,我有很多。
- 滚动球/凸包算法。我的数据沿表面的法线是有噪声的,所以我会得到一个"膨胀"的表面。我首先需要对它去噪,这本身就需要计算样条,或者类似的东西。
我觉得必须有一个"easy"我想了很多办法,但我不知道该找什么。有人能给我指个正确的方向吗?
我最好的猜测是应该有一种方法对样条曲面进行"定期"采样。,但我不知道为什么。
你描述的问题被命名为surface reconstruction
。有许多算法和软件(独立程序或库)能够从一组样本点重建一个表面。如果你只有点的XYZ坐标,或者你有更多的信息作为颜色或表面的法线,这有重要的区别。
举一些例子,你可以使用:
- 筛选泊松,由Kazhdan和Bolitho。这是在meshlab和许多其他python库中实现的。可能是你最好的选择。
- 《PowerCRUST》,作者:Nina Amenta、Sunghee Choi和Ravi Kolluri。
- 球旋转,由Bernardini, Mittleman等。非常简单,容易实现自己。