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;
00131 int stateDimension;
00132
00133 };
00134
00135 #endif // SIMPLEMANEUVERINGFILTER_H