Loading...
Searching...
No Matches

Kalman filter class. More...

#include <opencv2/video/tracking.hpp>

Public Member Functions

 KalmanFilter ()
 
 KalmanFilter (int dynamParams, int measureParams, int controlParams=0, int type=CV_32F)
 
const Matcorrect (const Mat &measurement)
 Updates the predicted state from the measurement.
 
void init (int dynamParams, int measureParams, int controlParams=0, int type=CV_32F)
 Re-initializes Kalman filter. The previous content is destroyed.
 
const Matpredict (const Mat &control=Mat())
 Computes a predicted state.
 

Public Attributes

Mat controlMatrix
 control matrix (B) (not used if there is no control)
 
Mat errorCovPost
 posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k)
 
Mat errorCovPre
 priori error estimate covariance matrix (P'(k)): P'(k)=A*P(k-1)*At + Q)*‍/
 
Mat gain
 Kalman gain matrix (K(k)): K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R)
 
Mat measurementMatrix
 measurement matrix (H)
 
Mat measurementNoiseCov
 measurement noise covariance matrix (R)
 
Mat processNoiseCov
 process noise covariance matrix (Q)
 
Mat statePost
 corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k))
 
Mat statePre
 predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k)
 
Mat temp1
 
Mat temp2
 
Mat temp3
 
Mat temp4
 
Mat temp5
 
Mat transitionMatrix
 state transition matrix (A)
 

Detailed Description

Kalman filter class.

The class implements a standard Kalman filter http://en.wikipedia.org/wiki/Kalman_filter, [Welch95] . However, you can modify transitionMatrix, controlMatrix, and measurementMatrix to get an extended Kalman filter functionality.

Note
In C API when CvKalman* kalmanFilter structure is not needed anymore, it should be released with cvReleaseKalman(&kalmanFilter)
Examples
samples/cpp/kalman.cpp.

Constructor & Destructor Documentation

◆ KalmanFilter() [1/2]

cv::KalmanFilter::KalmanFilter ( )

◆ KalmanFilter() [2/2]

cv::KalmanFilter::KalmanFilter ( int  dynamParams,
int  measureParams,
int  controlParams = 0,
int  type = CV_32F 
)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
dynamParamsDimensionality of the state.
measureParamsDimensionality of the measurement.
controlParamsDimensionality of the control vector.
typeType of the created matrices that should be CV_32F or CV_64F.

Member Function Documentation

◆ correct()

const Mat & cv::KalmanFilter::correct ( const Mat measurement)

Updates the predicted state from the measurement.

Parameters
measurementThe measured system parameters

◆ init()

void cv::KalmanFilter::init ( int  dynamParams,
int  measureParams,
int  controlParams = 0,
int  type = CV_32F 
)

Re-initializes Kalman filter. The previous content is destroyed.

Parameters
dynamParamsDimensionality of the state.
measureParamsDimensionality of the measurement.
controlParamsDimensionality of the control vector.
typeType of the created matrices that should be CV_32F or CV_64F.

◆ predict()

const Mat & cv::KalmanFilter::predict ( const Mat control = Mat())

Computes a predicted state.

Parameters
controlThe optional input control

Member Data Documentation

◆ controlMatrix

Mat cv::KalmanFilter::controlMatrix

control matrix (B) (not used if there is no control)

◆ errorCovPost

Mat cv::KalmanFilter::errorCovPost

posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k)

◆ errorCovPre

Mat cv::KalmanFilter::errorCovPre

priori error estimate covariance matrix (P'(k)): P'(k)=A*P(k-1)*At + Q)*‍/

◆ gain

Mat cv::KalmanFilter::gain

Kalman gain matrix (K(k)): K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R)

◆ measurementMatrix

Mat cv::KalmanFilter::measurementMatrix

measurement matrix (H)

◆ measurementNoiseCov

Mat cv::KalmanFilter::measurementNoiseCov

measurement noise covariance matrix (R)

◆ processNoiseCov

Mat cv::KalmanFilter::processNoiseCov

process noise covariance matrix (Q)

◆ statePost

Mat cv::KalmanFilter::statePost

corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k))

◆ statePre

Mat cv::KalmanFilter::statePre

predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k)

◆ temp1

Mat cv::KalmanFilter::temp1

◆ temp2

Mat cv::KalmanFilter::temp2

◆ temp3

Mat cv::KalmanFilter::temp3

◆ temp4

Mat cv::KalmanFilter::temp4

◆ temp5

Mat cv::KalmanFilter::temp5

◆ transitionMatrix

Mat cv::KalmanFilter::transitionMatrix

state transition matrix (A)


The documentation for this class was generated from the following file: