LFSiftPP.h 1.2 KB

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