/** * @file FeaturePoolClassifier.h * @brief abstract interface for a classifier using feature selection * @author Erik Rodner * @date 04/21/2008 */ #ifndef FEATUREPOOLCLASSIFIERINCLUDE #define FEATUREPOOLCLASSIFIERINCLUDE #include "vislearning/cbaselib/FeaturePool.h" #include "vislearning/cbaselib/ClassificationResult.h" #include "vislearning/cbaselib/CachedExample.h" #include "vislearning/cbaselib/Example.h" #include "core/basics/Persistent.h" namespace OBJREC { /** abstract interface for a classifier using feature selection */ class FeaturePoolClassifier : public NICE::Persistent { public: int maxClassNo; public: /** simple constructor */ FeaturePoolClassifier( ); /** simple destructor */ virtual ~FeaturePoolClassifier(); /** more comfortable classification functions for whole images */ ClassificationResult classify ( const NICE::Image & img ); ClassificationResult classifyRGB ( const NICE::ColorImage & img ); void setMaxClassNo ( int classno ); int getMaxClassNo () const; /** classification */ virtual ClassificationResult classify ( Example & pe ) = 0; /** training process */ virtual void train ( FeaturePool & fp, Examples & examples ) = 0; /** clone this object */ virtual FeaturePoolClassifier *clone () const = 0; /** set complexity for the next training process e.g. number of weak classifiers */ virtual void setComplexity ( int size ); /** add multiple examples given in the OBJREC::Examples data structure*/ virtual void addMultipleExamples( OBJREC::Examples & newExamples); }; } // namespace #endif