/** * @file VCCrossGeneralization.h * @brief Combination of Classifiers * @author Erik Rodner * @date 12/05/2007 */ #ifndef VCCrossGeneralizationINCLUDE #define VCCrossGeneralizationINCLUDE #ifdef NICE_USELIB_ICE #include "VCLearnFromSC.h" #ifdef NICE_USELIB_ICE #include "VCSimpleGaussian.h" #endif #include "VCNearestNeighbour.h" #include "core/basics/Config.h" namespace OBJREC { /** Combination of Classifiers */ class VCCrossGeneralization : public VCLearnFromSC { protected: bool useVotingNormalization; VCSimpleGaussian gauss; VCNearestNeighbour nnclassifier; bool simpleGaussianFinished; void normalizeVotings ( NICE::Vector & v ) const; public: /** simple constructor */ VCCrossGeneralization ( const NICE::Config *conf ); /** simple destructor */ virtual ~VCCrossGeneralization(); /** classify using simple vector */ virtual ClassificationResult classify ( const NICE::Vector & x ) const; virtual void preTeach ( const LabeledSetVector & teachSet ); virtual void teach ( const LabeledSetVector & teachSet ); virtual void finishTeaching(); void restore ( std::istream & is, int format = 0 ); void store ( std::ostream & is, int format = 0 ) const; void clear (); }; } // namespace #endif #endif