SIFT.h
上传用户:yli86818
上传日期:2014-07-15
资源大小:273k
文件大小:2k
源码类别:

图形图像处理

开发平台:

Visual C++

  1. // SIFT.h: interface for the CSIFT class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_SIFT_H__4D3AF374_E90A_4459_8436_EAA7F7C4ECF8__INCLUDED_)
  5. #define AFX_SIFT_H__4D3AF374_E90A_4459_8436_EAA7F7C4ECF8__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. #include "cxcore.h"
  10. #include "cv.h"
  11. #include <vector>
  12. #include "ScaleSpace.h"
  13. #include "KeyPoint.h"
  14. class CScaleFeature
  15. {
  16. int x,y,scale;
  17. };
  18. class CSIFT  
  19. {
  20. private:
  21. void findExtrema (IplImage **fImg, int size);
  22. const int SCALE_LEVEL;
  23. const double OCTAVE_SIGMA;
  24. const double PRESMOOTH_SIGMA;
  25. const double EDGE_RATIO;
  26. const int RELOCATION_MAX;
  27. const double SCALE_ADJ_THRESH;
  28. const double OCTAVE_COUNT;
  29. // Minimum absolute DoG value of a pixel to be allowed as minimum/maximum
  30. // peak. This control how much general non-differing areas, such as the
  31. // sky is filtered. Higher value = less peaks, lower value = more peaks.
  32. // Good values from 0.005 to 0.01. Note this is related to
  33. // 'dValueLowThresh', which should be a bit larger, factor 1.0 to 1.5.
  34. const double DOG_THRESH;
  35. // D-value filter highcap value, higher = less keypoints, lower = more.
  36. // Lower: only keep keypoints with good localization properties, i.e.
  37. //    those that are precisely and easily to localize (high contrast, see
  38. //    Lowe, page 11. He recommends 0.03, but this seems way too high to
  39. //    me.)
  40. const double DVALUE_LOW_THRESH;
  41. public:
  42. void detect (IplImage *img,std::vector <CKeyPoint*>* keypoints);
  43. CSIFT();
  44. virtual ~CSIFT();
  45. };
  46. #endif // !defined(AFX_SIFT_H__4D3AF374_E90A_4459_8436_EAA7F7C4ECF8__INCLUDED_)