二维曲线近似

时间:2012-01-04 15:06:33

标签: geometry curve approximation

这是我想做的事情(最好是用Matlab):

基本上我有几条汽车在十字路口行驶的痕迹。每一个都是嘈杂的,所以我想在所有测量中取平均值以获得更好的逼近真实路线。换句话说,我正在寻找一种近似曲线的方法,曲线对所有测量的痕迹(在最小二乘意义上)具有最小的能力。

乍一看,这与使用CurveFitting Toolbox的spap2可以实现的非常相似(最小二乘近似 here部分中的好例子)。 但是这个算法有一个主要的缺点:它假定一个函数(每个x只有一个y(x)),但我想要的是2d中的曲线(对于一个x可能有几个y(x))。当汽车向右或向左转动超过90度时,这会导致问题。 此外,它需要垂直偏移而不是垂直偏移(根据wolfram上的定义)。

有谁知道如何解决这个问题?我想过使用B样条并改变结的数量和度数,直到达到一定的拟合质量,但我找不到解决这个问题的方法或者使用CurveFitting Toolbox提供的函数。有没有办法在没有数值优化的情况下解决这个问题?

1 个答案:

答案 0 :(得分:0)

mbeckish是对的。为了在曲线形状中获得足够的灵活性,必须使用参数曲线表示(x(t),y(t))而不是显式表示y(x)。请参阅Parametric equation

在曲线上给出n个连续点,如果你知道它们,则给它们分配它们的真实时间,如果你不知道,只给它们整数0..n-1。然后用向量T,X和T,Y而不是X,Y两次调用spap2。现在对于任意t,你在曲线上得到一个点(x,y)。

这不会给你一个真正的最小二乘解决方案,但应该足以满足你的需求。