找到一组点的边界表面有哪些算法?

时间:2012-03-05 19:57:56

标签: algorithm 3d mesh point-clouds

假设你有一个点云,并且你想要一个包裹这些点的表面将它们全部包围起来,并将它们包裹得相当紧密,以便它与云中的外部点相交 - 你如何生成这个包裹的表面?也就是说,如果一些或多个点可能在体积内,因此表面不需要与它们相交,只能将它们包围起来,但表面应该非常适合“外部”点的点。

(我知道三角测量算法(例如Delaunay)用于拟合网格 - 我认为 - 一组中的所有点,但我不认为算法会起作用,除非有一个很好的方法可以丢弃所有但是点外壳。请随意指出我在这里缺少的方法!)

我应该寻找哪些算法(甚至超出“网格”,“适合”,“包裹”,“点云”等)的搜索关键字?

3 个答案:

答案 0 :(得分:3)

我认为您正在寻找convex hull algorithm。如果你要在某种包装纸上包裹一组点,离开最外边界,凸包就是你得到的形状。我可能会误解你的问题,但这听起来就像你正在寻找的那样。

希望这有帮助!

答案 1 :(得分:2)

我认为,你要搜索的是凸包

对于计算它的算法,请查看here

答案 2 :(得分:1)

如果您的点集不是凸的,可以使用TetGen来计算凸包,或者如果需要,可以使用表面三角剖分。

我不确定这对你有用,Mathematica有一个TetGenLink接口给TetGen。