VecClassifier.h 1.6 KB

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