将样条曲线拟合到能量最低的点云

计算科学 图像处理 曲线拟合
2021-12-18 00:35:27

我正在寻找一种将 2 阶样条曲线拟合到 2d 图像或点云的方法。输入将是灰度图像。起点和终点以 2D 坐标的形式给出。目标是找到一条样条线,使样条线穿过的能量或平均图像值最小化。

使用示例图像可能更容易理解:

示例图像。 给定的是样条曲线的起点和终点。

蓝线是目标。它应该大约。穿过山谷。我希望很清楚我需要什么...

我已经尝试使用 LiveWire 算法来解决这个问题,但这并不能带来流畅可靠的结果。

如果这很重要,那么编程语言是 python。

1个回答

您的意思是要拟合通过端点的 2 次多项式吗?如果是这样,这是一个 2D 优化问题。以某种方式参数化曲线,例如,作为曲线上第三点的函数。如果您想限制可能的曲线,请在图像中的一组点上评估您的成本函数,例如覆盖图像的点网格或围绕连接点的直线的图像区域。选择全局最小值,然后使用非线性优化器优化结果。

如果你的意思是你想要一个沿途有几个节点的样条,那么更大的优化空间可能会导致一个棘手的问题。如果路径可以用单个多项式粗略近似,则可以从上面的方法开始,然后对其进行细化。沿着曲线找到图像的最小值,并使用该点将曲线分成两段。然后将相同的方法应用于两个较小的部分以获得两部分样条。您可以继续细分,直到成本函数收敛或细分数量超过预设限制。

要评估沿曲线的能量,请使用图像的双线性插值,对沿曲线的点进行评估。