Main Page | Namespace List | Class List | File List | Class Members

SimpleManeuveringFilter.h

00001 #ifndef SIMPLEMANEUVERINGFILTER_H
00002 #define SIMPLEMANEUVERINGFILTER_H
00003 
00004 #include "cv.h"
00005 
00006 #ifdef WIN32
00007     #ifdef BUILD_DLL
00008         #define DLLIMPORTEXPORT __declspec(dllexport)
00009     #else
00010         #define DLLIMPORTEXPORT __declspec(dllimport)
00011     #endif
00012 #else
00013     #define DLLIMPORTEXPORT
00014 #endif
00015 
00038 class DLLIMPORTEXPORT SimpleManeuveringFilter {
00039 public:
00044     SimpleManeuveringFilter(int measurementDimension = 1);
00045     virtual ~SimpleManeuveringFilter();
00046     
00047     
00057     void setManeuveringTime(double tau = 30) { this->tau = tau; }
00065     void setProcessStdDev(double s = 1)      { sProcess = s; }
00071     void setMeasurementStdDev(double s = 1)  { sMeasurement = s; }
00077     double getManeuveringTime() const   { return tau; }
00083     double getProcessStdDev() const     { return sProcess; }
00089     double getMeasurementStdDev() const { return sMeasurement; }
00090 
00091 
00100     void init(const double state0[]);
00108     void run(const double measurement[]);
00116     void getState(double state[]) const;
00124     void setState(const double state[]);
00125 
00126 private:
00127     CvKalman *kalman;
00128     double tau, sProcess, sMeasurement;
00129 
00130     int measurementDimension; // number of data points 
00131     int stateDimension;       // stateDimension = 2 * measurementDimension, 
00132                               // keeps approximations of "real" measurement + rate of change
00133 };
00134 
00135 #endif // SIMPLEMANEUVERINGFILTER_H

Generated on Sun Feb 19 21:44:51 2006 for CV4HCI by  doxygen 1.4.4