LFSiftPP.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**
  2. * @file LFSiftPP.h
  3. * @brief Sift++ interface
  4. * @author Erik Rodner
  5. * @date 11/19/2007
  6. */
  7. #ifndef LFSIFTPPINCLUDE
  8. #define LFSIFTPPINCLUDE
  9. #include "core/vector/VectorT.h"
  10. #include "core/vector/MatrixT.h"
  11. #include "core/image/ImageT.h"
  12. #include "core/basics/Config.h"
  13. #include "LocalFeatureRepresentation.h"
  14. namespace OBJREC {
  15. /** Sift++ interface */
  16. class LFSiftPP : public LocalFeatureRepresentation
  17. {
  18. protected:
  19. enum {
  20. DALGIN_DETECTOR = 0,
  21. DALIGN_MULTIPLE
  22. };
  23. int descriptorAlignment;
  24. double minScale;
  25. double maxScale;
  26. int numScales;
  27. int numAngles;
  28. float threshold;
  29. float edgeThreshold;
  30. int levels;
  31. int octaves;
  32. int first_octave;
  33. bool normalizeFeature;
  34. public:
  35. /** simple constructor */
  36. LFSiftPP( const NICE::Config *conf );
  37. /** simple destructor */
  38. virtual ~LFSiftPP();
  39. int getDescSize () const;
  40. int extractFeatures ( const NICE::Image & img, NICE::VVector & features,
  41. NICE::VVector & positions ) const;
  42. void visualizeFeatures ( NICE::Image & mark,
  43. const NICE::VVector & positions,
  44. size_t color ) const;
  45. };
  46. } // namespace
  47. #endif