VCCrossGeneralization.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /**
  2. * @file VCCrossGeneralization.h
  3. * @brief Combination of Classifiers
  4. * @author Erik Rodner
  5. * @date 12/05/2007
  6. */
  7. #ifndef VCCrossGeneralizationINCLUDE
  8. #define VCCrossGeneralizationINCLUDE
  9. #ifdef NICE_USELIB_ICE
  10. #include "VCLearnFromSC.h"
  11. #ifdef NICE_USELIB_ICE
  12. #include "VCSimpleGaussian.h"
  13. #endif
  14. #include "VCNearestNeighbour.h"
  15. #include "core/basics/Config.h"
  16. namespace OBJREC
  17. {
  18. /** Combination of Classifiers */
  19. class VCCrossGeneralization : public VCLearnFromSC
  20. {
  21. protected:
  22. bool useVotingNormalization;
  23. VCSimpleGaussian gauss;
  24. VCNearestNeighbour nnclassifier;
  25. bool simpleGaussianFinished;
  26. void normalizeVotings ( NICE::Vector & v ) const;
  27. public:
  28. /** simple constructor */
  29. VCCrossGeneralization ( const NICE::Config *conf );
  30. /** simple destructor */
  31. virtual ~VCCrossGeneralization();
  32. /** classify using simple vector */
  33. virtual ClassificationResult classify ( const NICE::Vector & x ) const;
  34. virtual void preTeach ( const LabeledSetVector & teachSet );
  35. virtual void teach ( const LabeledSetVector & teachSet );
  36. virtual void finishTeaching();
  37. void restore ( std::istream & is, int format = 0 );
  38. void store ( std::ostream & is, int format = 0 ) const;
  39. void clear ();
  40. };
  41. } // namespace
  42. #endif
  43. #endif