我有几个问题:
在OpenCV文档中给出的示例中:
/* 生成测量 */ cvMatMulAdd(kalman->measurement_matrix,state,measurement,measurement);
这是正确的吗? 在Welch和Bishop的教程Kalman滤波器介绍中,方程式1.2中说测量= H*state + 测量噪声。
两者似乎不同。
- 我正在尝试为单个球实现弹跳球跟踪。 我尝试了以下方法:(如果我做错了,请指出。)
对于测量,我测量两件事:a)球心的x b) y坐标。
我只是提到与OpenCV文档中给出的示例不同的行。
CvKalman* kalman = cvCreateKalman( 5, 2, 0 );
const float A[] = { 1, 0, 1, 0, 0,
0, 1, 0, 1, 0,
0, 0, 1, 0, 0,
0, 0, 0, 1, 1,
0, 0, 0, 0, 1};
CvMat* state = cvCreateMat( 5, 1, CV_32FC1 );
CvMat* measurement = cvCreateMat( 2, 1, CV_32FC1 );
//initialize the state of kalman filter
state->data.fl[0] = mean_c;
state->data.fl[1] = mean_r;
state->data.fl[2] = mean_c - prev_mean_c;
state->data.fl[3] = mean_r - prev_mean_r;
state->data.fl[4] = 9.81;
初始化后,这是导致崩溃的原因
cvMatMulAdd(kalman->transition_matrix,state, kalman->process_noise_cov,state);