在卡尔曼滤波器中初始化transitionMatrix

时间:2014-09-10 20:46:26

标签: matrix filter transition kalman-filter

我正在开展一个对象跟踪项目,我想改进使用卡尔曼滤波器获得的结果。

KalmanFilter KF(4 , 2 , 2 ,CV_32F );
Mat_<float> state(4, 1);
Mat_<float> processNoise(4, 1, CV_32F);
Mat_<float> measurement(2 , 1 , CV_32F); 
measurement.setTo(Scalar(0));

KF.statePre.at<float>(0) = 0;
KF.statePre.at<float>(1) = 0;
KF.statePre.at<float>(2) = 0;
KF.statePre.at<float>(3) = 0;

KF.transitionMatrix = *(Mat_<float>(4, 4) << 1,0,1,0,   0,1,0,1,  0,0,1,0,  0,0,0,1); //Including velocity

在最后一行,我们有错误“Windows已触发项目中的断点(卡尔曼).exe。

这可能是由于堆的损坏,这表示Project(Kalman).exe或它已加载的任何DLL中存在错误。

这也可能是由于用户按下F12而Project(Kalman).exe具有焦点。“ 请帮帮我:(

1 个答案:

答案 0 :(得分:1)

const float transition [2] [2] = {1,1,0,1}; memcpy(KF.transitionMatrix.data,transition,sizeof(transition));