Kalman filter. More...
#include <tracking.hpp>
Public Member Functions | |
CV_WRAP | KalmanFilter () |
the default constructor | |
CV_WRAP | KalmanFilter (int dynamParams, int measureParams, int controlParams=0, int type=CV_32F) |
the full constructor taking the dimensionality of the state, of the measurement and of the control vector | |
void | init (int dynamParams, int measureParams, int controlParams=0, int type=CV_32F) |
re-initializes Kalman filter. The previous content is destroyed. | |
CV_WRAP const Mat & | predict (const Mat &control=Mat()) |
computes predicted state | |
CV_WRAP const Mat & | correct (const Mat &measurement) |
updates the predicted state from the measurement | |
Public Attributes | |
Mat | statePre |
predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k) | |
Mat | statePost |
corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k)) | |
Mat | transitionMatrix |
state transition matrix (A) | |
Mat | controlMatrix |
control matrix (B) (not used if there is no control) | |
Mat | measurementMatrix |
measurement matrix (H) | |
Mat | processNoiseCov |
process noise covariance matrix (Q) | |
Mat | measurementNoiseCov |
measurement noise covariance matrix (R) | |
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 | errorCovPost |
posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k) | |
Mat | temp1 |
Mat | temp2 |
Mat | temp3 |
Mat | temp4 |
Mat | temp5 |
Kalman filter.
The class implements standard Kalman filter {http://en.wikipedia.org/wiki/Kalman_filter}. However, you can modify KalmanFilter::transitionMatrix, KalmanFilter::controlMatrix and KalmanFilter::measurementMatrix to get the extended Kalman filter functionality.
CV_WRAP cv::KalmanFilter::KalmanFilter | ( | ) |
the default constructor
CV_WRAP cv::KalmanFilter::KalmanFilter | ( | int | dynamParams, |
int | measureParams, | ||
int | controlParams = 0 , |
||
int | type = CV_32F |
||
) |
the full constructor taking the dimensionality of the state, of the measurement and of the control vector
void cv::KalmanFilter::init | ( | int | dynamParams, |
int | measureParams, | ||
int | controlParams = 0 , |
||
int | type = CV_32F |
||
) |
re-initializes Kalman filter. The previous content is destroyed.
CV_WRAP const Mat& cv::KalmanFilter::predict | ( | const Mat & | control = Mat() | ) |
computes predicted state
CV_WRAP const Mat& cv::KalmanFilter::correct | ( | const Mat & | measurement | ) |
updates the predicted state from the measurement
predicted state (x'(k)): x(k)=A*x(k-1)+B*u(k)
corrected state (x(k)): x(k)=x'(k)+K(k)*(z(k)-H*x'(k))
state transition matrix (A)
control matrix (B) (not used if there is no control)
measurement matrix (H)
process noise covariance matrix (Q)
measurement noise covariance matrix (R)
priori error estimate covariance matrix (P'(k)): P'(k)=A*P(k-1)*At + Q)*/
Kalman gain matrix (K(k)): K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R)
posteriori error estimate covariance matrix (P(k)): P(k)=(I-K(k)*H)*P'(k)