5

过去几天我花在搜索曲线重建实现上,但没有找到——既不是库也不是工具。

描述我的问题。

我主要关心的是有间隙的轮廓: 图像

从我同时阅读的论文中,我想解决方案将需要使用 Delaunay 三角剖分,并且引用最多的方法似乎在 1997 年的论文“ The Crust and the β-Skeleton: Combinatorial Curve Reconstruction ”中有所描述

有人可以指点我一个曲线重建实现,可以帮助我解决这个问题吗?

4

3 回答 3

1

算法在 CGAL 中实现。示例实现可以在 CGAL ipelets 演示包中的 C++ 中看到。更多编译演示允许用户在ipe GUI 应用程序中应用算法:

图像

在上面的例子中,我只选择了我的图像的一部分,因为底线不符合必要的要求,所以在纠正之前不能在该部分上应用外壳。此外,正如可以注意到的,必须对图像进行采样。

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

于 2013-03-04T15:54:41.083 回答
0

Delaunay 三角剖分使用离散曲线,因此会丢失信息。这可能会导致您意想不到的奇怪问题。在您的示例中,下边界的中间部分可能会导致问题。

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

类似于,对于每个端点收集邻域中的轮廓导数。比找到该端点可以连接的所有端点,具有近似导数方向并且该关节不跨越另一条线。可以通过关节距离和与局部导数的偏差来赋予可能的连接权重。赋予权重定义了带有可能端点连接的加权图。该图中的最大边匹配将是解决问题的好方法。

于 2013-03-03T08:29:58.033 回答
0

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

您可以简单地编写一个跟随曲线的蠕虫,当您到达曲线的末端时,您将当前方向向量与梯度一起获取并向前推断。找到最适合的所有其他端点,然后对它们进行评分;与得分最高的人重新联系。简单,如果不仅仅是简单的分手,也容易出现问题。

分层瀑布方法可能很有趣

瀑布流中的阈值方法(和水平集方法)可用于检测这些差距并填补它们。

于 2013-03-03T08:44:56.650 回答