使用vtk从点和法线三角测量一个表面

3
我有一组在三维空间中位于表面上的点,每个点都有法向量。我想使用这些信息生成一个表面三角剖分。如果需要,我还可以告诉算法使用哪些边界点。
所以,我有相当多的信息: * 点 * 法向量 * 边界
如何使用vtk将此信息三角化为表面?
使用表面重建算法解决此问题有些浪费,因为我希望利用所有这些信息。这些信息来自模拟,因此我知道表面存在且非常平滑。
我希望您能告诉我应该使用vtk的哪个函数,并提供可用的示例(如果有的话),谢谢!

你是否已经考虑过设置一个“隐式函数”,例如径向基函数,然后使用Marching Cubes算法来三角化表面? - André
1
我从未使用过vtk,因此我不知道这是否是正确的方法。我有一组点和这些位置的表面法线。我的问题是我能否使用vtk进行此操作,如果可能的话,请提供一些细节(例如要使用的方法)。如果我得到肯定的答案,那么我会学习细节。 - Alejandro
3个回答

2

1

谢谢。我会看一下的。你知道用这个库,我是否也可以输入我的法线吗?再次强调,我不需要进行表面重建(至少我是这么认为的)。 - Alejandro
我昨天尝试了PCL。我发现它对于点等向分布的小数据集非常有效(意味着一个点在所有方向上都有同样的机会找到邻居)。我的数据集很大(至少对于PCL来说),约有200K个点,而且很容易达到1M个点。此外,我的点不是等向分布的,而是聚集在需要更多细节的区域(和方向)中。经过一段时间的尝试后,我发现PCL对这些情况不起作用。 - Alejandro

1
只需要3D点就足够了。由于你知道表面是光滑的,可以对这些点进行 Delaunay 三角剖分(vtkDelaunay3D),并应用细分滤波器以使其更加光滑(vtkButterflySubdivisionFilter)。

Delaunay3D 三角剖分


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接