我想在OpenCV中为r3(X,Y,Z坐标)中的移动对象实现卡尔曼滤波器。我试图理解OpenCV文档,但这真的没有帮助,而且非常罕见。
初始化的语法为:
KalmanFilter::KalmanFilter ( int dynamParams, int measureParams, int 控件参数 = 0,int 类型 = CV_32F )
就我而言,dynamParams = 9 和 measureParams = 3 吗?
在我的情况下,过渡矩阵是什么?
在这种情况下,转换矩阵 A 如下所示:
A = [1, 0, 0, v, 0, 0, a, 0, 0;
0, 1, 0, 0, v, 0, 0, a, 0;
0, 0, 1, 0, 0, v, 0, 0, a;
0, 0, 0, 1, 0, 0, v, 0, 0;
0, 0, 0, 0, 1, 0, 0, v, 0;
0, 0, 0, 0, 0, 1, 0, 0, v;
0, 0, 0, 0, 0, 0, 1, 0, 0;
0, 0, 0, 0, 0, 0, 0, 1, 0;
0, 0, 0, 0, 0, 0, 0, 0, 1]
跟
v = dt
a = 0.5*dt^2
请参阅 http://campar.in.tum.de/Chair/KalmanFilter
我发现,对于3D案例,通常使用位置,速度和加速度。这意味着,对于OpenCV实现dynamParams=9和measureParams=3是正确的。