用于提取网格或点云的中心曲线(中轴或拓扑骨架)的代码?

时间:2012-05-19 18:01:16

标签: c# python vb.net computational-geometry mesh

您是否知道任何现有代码来提取网格或点云的中心曲线? 网格的中心曲线与其boundaries等距。

我在平面多边形上查看了已发布的几个问题/答案,例如此one,但找不到用3D解释结果的问题/答案,例如此paper和{{}}中显示的问题/答案3}}关于“通过基于拉普拉斯的收缩的点云骨架化”,其中这个二次one回到两者中。

equation中描述了使用基于“连接环”的突出分割进行3D网格骨架提取的方法。

到目前为止,我最接近它的工作是ImageJ的paper插件,但我无法让它适用于.obj网格。

1 个答案:

答案 0 :(得分:2)

不幸的是,一般来说这样的曲线不存在。它只存在于非常特殊的情况下,例如,如果云的边界可以通过沿曲线扫描球体来生成,例如,在POVRay中生成的这种形状(来自this web page):
Swept Sphere
所以你必须接受某种类型的近似。

首先,一个想法是以某种方式计算边界。既然你提到网格,也许你已经有了边界。其次,找到最大的内切球体。第三,用最佳拟合曲线逼近它们的中心。

正如 bo ^ 4所示,并且您的标题已确认,您实际上正在寻找medial axis,这很难计算,而且通常是多重表面。基本上,您希望通过单条曲线逼近中轴。