我看不懂 但还是先转了吧
问题
假设已知时间序列上的点集,需要拟合直线,也就是分别拟合直线。
该问题可以分解为两个完全相同的子问题:
- 使用点集,来拟合(x, t)平面上的直线;
- 使用点集,来拟合(y, t)平面上的直线。
下面以拟合(x, t)平面上的直线为例说明问题的求解。
解答
所有的点到拟合出的直线的误差应该为最小,也就是(a,b)分别取什么值的时候,下面这个方程的值(误差)最小:
直接给出该式的参数解:
其中
代入整理后,可得
[
编辑]
误差
点集到直线的拟合误差为:
[
编辑]
blobtrack代码
blobtrack程序的DetectNewBlob()函数中的直线拟合部分
- sum[0/1]对应上面的
- jsum[0/1]对应上面的
- a[0/1]对应上面的a
- b[0/1]对应上面的b
- pBL[j]->x 对应上面的 xt
- pBL[j]->y 对应上面的 yt