VecClassifier.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /**
  2. * @file VecClassifier.h
  3. * @brief Simple classification interface
  4. * @author Erik Rodner
  5. * @date 07.09.2007
  6. */
  7. #ifndef VecClassifierINCLUDE
  8. #define VecClassifierINCLUDE
  9. #include "core/basics/Persistent.h"
  10. #include "core/basics/Config.h"
  11. #include "vislearning/cbaselib/LabeledSet.h"
  12. #include "vislearning/cbaselib/ClassificationResult.h"
  13. #define ROADWORKS fthrow(Exception, "clone(): not yet implemented!");
  14. namespace OBJREC {
  15. /** Simple classification interface */
  16. class VecClassifier : public NICE::Persistent
  17. {
  18. protected:
  19. int maxClassNo;
  20. public:
  21. VecClassifier() { maxClassNo = 0; };
  22. /** simple constructor */
  23. VecClassifier( const NICE::Config *conf );
  24. /** simple destructor */
  25. virtual ~VecClassifier();
  26. virtual void setMaxClassNo ( int maxClassNo );
  27. virtual int getMaxClassNo () const;
  28. /** classify using simple vector */
  29. virtual ClassificationResult classify ( const NICE::Vector & x ) const = 0;
  30. /** teach classifier with a labeled set of feature vectors */
  31. virtual void teach ( const LabeledSetVector & teachSet ) = 0;
  32. /** calculate classifier stuff as the last training step */
  33. virtual void finishTeaching() = 0;
  34. /** clone this object */
  35. virtual VecClassifier *clone(void) const { ROADWORKS; };
  36. };
  37. #undef ROADWORKS
  38. } // namespace
  39. #endif