![](/img/trans.png)
[英]How to prove by induction that a parabola corresponding to two edges intersects at atmost 2 points?
[英]Parabola fitting with two given points and a cost function
假设有一个抛物线Y = aX^2 + bX + c
,并且它可以按如下方式旋转:
X = x.sin(phi) + y.cos(phi)
Y = x.cos(phi) - y.sin(phi)
phi = rotation angle
我们希望将其放在边框上(例如,眼睑的内部边框,如下图所示)。 问题在于,如何在每次迭代中更改抛物线,以使其最小化成本函数。 我们知道抛物线可以旋转,其起源可能在搜索区域中有所不同。 请注意,已拟合的抛物线应通过两个给定点(例如,下图中的白色正方形)。 因此,在每次迭代中,我们可以通过两个给定点和原点(三个方程和三个变量)来计算a
, b
和c
。 问题是我们如何才能以最小的迭代达到目标(而不是测试所有可能性,即搜索区域中的所有角度和所有位置)。
任何想法将不胜感激。
@woodchips:我认为这是一个编程问题,他要求实现的解决方案。我绝对不同意您的意见。
一种可能的解决方案是首先沿着与两个给定点之间的线正交的垂直线进行搜索。 您也可以在此间隔内更改角度。 根据问题的性质(眼睑的边界),可以限制-pi / 4和pi / 4之间的角度变化。 在此垂直线上找到某个头寸的最低成本之后,您可以沿水平线搜索并执行类似的任务。
为什么不使用回归将抛物线拟合到目标形状中的几个点? 然后,您可以使用想要获得近似解的算法。 牛顿法收敛很快。 这里的优化是基于近似抛物线的系数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.