OpenCV 4.10.0-dev
Open Source Computer Vision
Loading...
Searching...
No Matches
cv::KalmanFilter Class Reference

Kalman filter class. More...

#include <opencv2/video/tracking.hpp>

Collaboration diagram for cv::KalmanFilter:

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, [297] . 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 ( )
Python:
cv.KalmanFilter() -> <KalmanFilter object>
cv.KalmanFilter(dynamParams, measureParams[, controlParams[, type]]) -> <KalmanFilter object>

◆ KalmanFilter() [2/2]

cv::KalmanFilter::KalmanFilter ( int dynamParams,
int measureParams,
int controlParams = 0,
int type = CV_32F )
Python:
cv.KalmanFilter() -> <KalmanFilter object>
cv.KalmanFilter(dynamParams, measureParams[, controlParams[, type]]) -> <KalmanFilter object>

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)
Python:
cv.KalmanFilter.correct(measurement) -> retval

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())
Python:
cv.KalmanFilter.predict([, control]) -> retval

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: