VecClassifier.h 1.6 KB

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