具有两个给定点和成本函数的抛物线拟合

时间:2013-03-03 20:03:04

标签: algorithm math curve-fitting

假设有一个抛物线Y = aX^2 + bX + c,它可能会按如下方式旋转:

X = x.sin(phi) + y.cos(phi)
Y = x.cos(phi) - y.sin(phi)
phi = rotation angle

我们希望将它放在边框上(例如眼睑的内边缘,如下图所示)。问题是我们如何在每次迭代中改变抛物线,以便最小化成本函数。我们知道抛物线可以处于不同的旋转,其起源可能在搜索区域中有所不同。注意,拟合抛物线应该通过它们有两个给定点(例如下图中的白色方块)。因此,在每次迭代中,我们可以通过两个给定点和原点(三个方程和三个变量)计算abc。 问题是我们如何在最小迭代中达到目标(而不是测试所有可能性,即搜索区域中的所有角度和所有位置)。

enter image description here

任何想法都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

@woodchips:我认为这是一个编程问题,他问了一个实现的解决方案。我绝对不同意你。

一种可能的解决方案是首先沿垂直线搜索,该垂直线与两个给定点之间的直线正交。此外,您还可以在此间隔内改变角度。作为问题的本质(眼睑边框),您可以限制-pi / 4和pi / 4之间的角度变化。在此垂直线中找到位置的最低成本后,您可以沿水平线搜索并执行类似的任务。

答案 1 :(得分:0)

为什么不使用回归将抛物线拟合到目标形状中的几个点?然后你可以使用你想要的哪种算法来获得近似解。牛顿的方法收敛得非常快。这里的优化是关于近似抛物线的系数。