www.pudn.com > 人体步态跟踪识别bate版.rar > KalmanFilter.cpp
// KalmanFilter.cpp: implementation of the CKalmanFilter class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "humantrack.h"
#include "KalmanFilter.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CKalmanFilter::CKalmanFilter()
{
m_TimeInterval=1.0/25.0 ; //初始化时间间隔为1.0/25.0
InitializeH(); //初始化H矩阵
InitializeMatricF(m_TimeInterval); //初始化F矩阵
InitializeMatricG(); //初始化G矩阵
InitializeNoiseCorr(); //初始化噪声方差矩阵R和Q
InitializeXPPre(); //初始化X值和p值
InitializeGainK(); //初始化增益K矩阵
}
CKalmanFilter::~CKalmanFilter()
{
}
/////////////////////////////////////////////////////////////////////////
//初始化X0和P0 InitialXP(double *X0, double *P0)
//初始化H InitialzeH()
//初始化F InitializeMatricF()
//初始化G InitializeMatricG()
//初始化R和Q InitializeNoiseCorr()
//初始化增益K InitializeGainK()
//////////////////////////////////////////////////////////////////////////
//初始化状态矢量X和状态矢量协方差P
void CKalmanFilter::InitialXP(double *X0, double *P0)
{
int i,j;
for(i=0;i