VecClassifier.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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(NICE::Exception, "clone(): not yet implemented!");
  14. namespace OBJREC
  15. {
  16. /** Simple classification interface */
  17. class VecClassifier : public NICE::Persistent
  18. {
  19. protected:
  20. int maxClassNo;
  21. public:
  22. VecClassifier()
  23. {
  24. maxClassNo = 0;
  25. };
  26. /** simple constructor */
  27. VecClassifier ( const NICE::Config *conf );
  28. /** simple destructor */
  29. virtual ~VecClassifier();
  30. virtual void setMaxClassNo ( int maxClassNo );
  31. virtual int getMaxClassNo () const;
  32. /** classify using simple vector */
  33. virtual ClassificationResult classify ( const NICE::Vector & x ) const = 0;
  34. /** teach classifier with a labeled set of feature vectors */
  35. virtual void teach ( const LabeledSetVector & teachSet ) = 0;
  36. /** calculate classifier stuff as the last training step */
  37. virtual void finishTeaching() = 0;
  38. /** clone this object */
  39. virtual VecClassifier *clone ( void ) const
  40. {
  41. ROADWORKS;
  42. };
  43. };
  44. #undef ROADWORKS
  45. } // namespace
  46. #endif