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

ForegroundDetector.h

00001 #ifndef FOREGROUNDDETECTOR_H
00002 #define FOREGROUNDDETECTOR_H
00003 
00004 #include "cv.h"
00005 #include <cvaux.h>
00006 
00007 #include "SimpleManeuveringFilter.h"
00008 
00009 #ifdef WIN32
00010     #ifdef BUILD_DLL
00011         #define DLLIMPORTEXPORT __declspec(dllexport)
00012     #else
00013         #define DLLIMPORTEXPORT __declspec(dllimport)
00014     #endif
00015 #else
00016     #define DLLIMPORTEXPORT
00017 #endif
00018 
00038 class DLLIMPORTEXPORT ForegroundDetector {
00039 public:
00040     ForegroundDetector();
00041     virtual ~ForegroundDetector();    
00042 
00048     static CvFGDStatModelParams getDefaultParameters();
00058     void setParameters(const CvFGDStatModelParams &p) { parameters = p; forget(); }
00064     void getParameters(CvFGDStatModelParams &p) const { p = parameters; }
00065 
00066 
00072     SimpleManeuveringFilter &getPositionFilter() { return positionFilter; }
00078     SimpleManeuveringFilter &getSizeFilter() { return sizeFilter; }
00084     SimpleManeuveringFilter &getAngleFilter() { return angleFilter; }
00088     void resetFilters();
00089 
00090 
00096     void run(IplImage* frame);
00097 
00098 
00104     IplImage* getImage() const { return image; }
00111     IplImage* getForeground() const;
00117     IplImage* getBackground() const;
00124     void drawEllipse(IplImage *image) const;
00132     CvBox2D getTrackBox() const { return track_box; }
00133 
00134 
00139     void forget() { doForget = true; }
00140 
00141 private:
00142     CvBGStatModel* bg_model;
00143     IplImage* image, *foreground, *background;
00144     bool doForget;
00145 
00146     CvBox2D track_box;
00147 
00148     CvFGDStatModelParams parameters;
00149     
00150     SimpleManeuveringFilter positionFilter, sizeFilter, angleFilter;
00151 };
00152 
00153 #endif // FOREGROUNDDETECTOR_H

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