2015-07-13 50 views
3

我有三维点云并希望重建曲面。我在Meshlab中尝试了各种技术来找到最适合我的特定类型的云的算法。通过保留点位置实现三维曲面重建

泊松曲面重建是非常有前景的,但它不保留原始的点位置。在云中的特定位置进行重建和测量后发现,测量结果与真实世界中物体的测量结果相比超过了1.5倍。

球枢转算法更好。它保留了点的位置,测量值也在预期范围内。然而,这种算法在美国获得专利,所以我不能将其用于商业项目。

经过研究其他算法,我没有发现任何可以在商业环境中使用的像点球旋转那样的点位置。你知道满足这两个标准的算法吗?我可以用我的点云来试验它们,看它们在实施它们之前是否运行良好?

任何帮助,将不胜感激。

+0

使用Alpha-shapes https://en.wikipedia.org/wiki/Alpha_shape。它们是在专利之前公布的,这并不是什么新鲜事。 –

+0

我尝试了Meshlab中的alpha形状,它似乎并不坏。但经过与球机的比较后,有一些严重的缺陷。三角形的数量太高。现在没有一个网格显示表面,而是有许多相互重叠的三角形。我尝试了网格的简化,但它无法与球轴相比。 实施例阿尔法形状的线框和目: http://abload.de/img/alphawireframe69qyf.png http://abload.de/img/alphameshefrbt.png 实例球枢轴线框和目: HTTP:// abload.de/img/ballpivotwireframe1lqpp.png http://abload.de/img/ballpivotmesh6qrfw.png – RBS

+0

Alpha形状和球形支点实际上是相同的方法。你是否正确调整了半径? –

回答

3

对于插值表面重构(保持数据点),两个算法执行得相当好(地壳和共圆锥)。

地壳算法:

的想法是首先计算点集的Voronoi图,然后从沃罗诺伊选择顶点是中轴(称为极)的良好近似的操作,然后计算输入点+极点的3D Delaunay三角剖分,最后提取连接四面体中三个输入点的三角形,其中第四个顶点是极点。

更多的参考资料:

http://web.cs.ucdavis.edu/~amenta/pubs/crust.pdf

http://web.mit.edu/manoli/crust/www/crust.html

  • 加:很简单的实现,一些理论保证,如果输入的数据是一个很好的采样

  • 减:要求计算两个Delaunay三角剖分

共同锥体算法:

的想法是计算点集的Voronoi图,然后在每个Voronoi单元计算所述正常的良好近似的表面(作为向量连接极点,即距离数据点最远的两个Voronoi顶点)。然后在每个Voronoi单元中考虑一个以数据点为中心并以法线为轴的圆锥体(共圆锥体)的补充。如果三个锥体与Voronoi边缘具有非空的交点,则三个数据点用三角形连接。请注意,共圆锥体对象不需要明确构造(只需要比较角度以测试是否存在交叉点)。

更多的参考资料:

http://web.cse.ohio-state.edu/~tamaldey/surfrecon.htm

  • 加:需要一个单一的Delaunay三角剖分(相比于2地壳),一些理论保证如果输入数据是 “好采样”

  • 减号:比地壳稍微复杂一点(但值得我的努力)

一些最后的词:

这些算法构建好(即如果点集实现了良好的采样(即,与厚度和曲率成比例的密度,称为“局部特征尺寸”=到中轴的距离),则可以确定流形。在实践中,输入数据不满足这个条件,因此该方法的输出将是一个“三角汤”,大部分都是OK,但这需要一些后处理来修复一些局部缺陷。

编辑16年3月21日你也可以尝试我自己的算法(Co3Ne),在我的软件库Geogram(http://alice.loria.fr/software/geogram/doc/html/index.html)和我的软件石墨(http://alice.loria.fr/software/graphite/doc/html/)来实现。 Graphite可以在那里下载:http://gforge.inria.fr/frs/?group_id=1465(便携式源代码和Windows64可执行文件)。它是一种具有各种优化和并行实现的共同锥体形式。