5

过去几天,我花费在搜索曲线重建实现上,没有发现 - 不是作为库或作为工具。曲线重构实现

描述我的问题。

我最关心的是轮廓与差距: img

从报纸,我在此期间阅读,我猜解决方案将需要Delaunay三角的使用,并且引用最多的方法似乎在1997年纸描述“The Crust and the β-Skeleton: Combinatorial Curve Reconstruction

有人可以指向我的曲线重构实现,可以帮助我解决这个问题吗?

+1

虽然您已经选择了一个答案,但如果问题仍然存在,请搜索“曲线完成”和“轮廓完成”,这些可能会给您更多点击。对于这类问题,欧拉螺旋线是一个很好的拟合,因为即使存在大的间隙,欧拉螺旋线完成算法也可以给出“自然”拟合。 – Rethunk 2013-04-07 03:49:17

+0

谢谢@Rethunk。我浏览了一些关于这个主题的论文,看起来它适合于单曲线重建,而非轮廓重建。你可能知道它是否在一些图书馆或环境中实现,以便于测试吗? – theta 2013-04-08 03:01:03

+1

大约一年前,我发现了一些资源,包括一些C++代码。我在这里发布链接:http://stackoverflow.com/questions/6828359/how-to-draw-clothoids-graphically-in-qt/8890013#8890013 – Rethunk 2013-04-09 12:20:01

回答

1

在CGAL实现算法。 CGAL ipelets演示包中的C++中可以看到示例实现。更编译演示,让用户在ipe GUI application应用算法:

img

在上面的例子中,我选择只是我的形象的一部分,作为底线没有达到所需要求,所以壳不能适用于该部分直到纠正。此外,图像必须被采样,可以注意到。

如果没有人提供另一个实现示例,那么在几天后我会将我的答案标记为正确。

0

德洛奈三角测量法使用离散曲线,并丢失信息。这可能会导致奇怪的问题,你不指望他们。在你的例子中,下边界上的中间部分可能会导致问题。

在这种情况下,从模型收集相关信息并尝试进行匹配可能会很好。

类似的,对于每个端点收集邻域中的轮廓导数。比找出可以连接端点的所有端点,具有近似的微分方向,并且该关节不会穿过其他线。可以通过联合距离和偏离局部导数来给予可能的连接权重。赋予权重定义可能的终点连接的加权图。该图中的最大边缘匹配可以很好地解决问题。

+0

Delaunay三角测量以可接受的精度关闭轮廓。 Crust算法仅提取缺失的部分。正如纸上所证明的。 – theta 2013-03-03 10:16:04

0

有很多方法可以解决这个问题;

你可以简单地写出一条符合曲线的蠕虫,当你到达一条曲线的末端时,你将当前的方向矢量与梯度一起向外推。找出最适合的所有其他端点,然后对它们进行评分;重新与最高分的人重新联系。如果它不仅仅是一个简单的分手,而且很容易出现问题。

A hierarchical waterfall method might be interesting

有在瀑布阈的方法(和水平集方法),可以用于检测这些间隙和在填充它们。

+0

我读过几种连接方式,但用地壳算法关闭它报告为最准确的拓扑轮廓。 – theta 2013-03-03 10:12:15