SIFT.h
上传用户:yli86818
上传日期:2014-07-15
资源大小:273k
文件大小:2k
- // SIFT.h: interface for the CSIFT class.
- //
- //////////////////////////////////////////////////////////////////////
- #if !defined(AFX_SIFT_H__4D3AF374_E90A_4459_8436_EAA7F7C4ECF8__INCLUDED_)
- #define AFX_SIFT_H__4D3AF374_E90A_4459_8436_EAA7F7C4ECF8__INCLUDED_
- #if _MSC_VER > 1000
- #pragma once
- #endif // _MSC_VER > 1000
- #include "cxcore.h"
- #include "cv.h"
- #include <vector>
- #include "ScaleSpace.h"
- #include "KeyPoint.h"
- class CScaleFeature
- {
- int x,y,scale;
- };
- class CSIFT
- {
- private:
- void findExtrema (IplImage **fImg, int size);
- const int SCALE_LEVEL;
- const double OCTAVE_SIGMA;
- const double PRESMOOTH_SIGMA;
- const double EDGE_RATIO;
- const int RELOCATION_MAX;
- const double SCALE_ADJ_THRESH;
- const double OCTAVE_COUNT;
- // Minimum absolute DoG value of a pixel to be allowed as minimum/maximum
- // peak. This control how much general non-differing areas, such as the
- // sky is filtered. Higher value = less peaks, lower value = more peaks.
- // Good values from 0.005 to 0.01. Note this is related to
- // 'dValueLowThresh', which should be a bit larger, factor 1.0 to 1.5.
- const double DOG_THRESH;
- // D-value filter highcap value, higher = less keypoints, lower = more.
- // Lower: only keep keypoints with good localization properties, i.e.
- // those that are precisely and easily to localize (high contrast, see
- // Lowe, page 11. He recommends 0.03, but this seems way too high to
- // me.)
- const double DVALUE_LOW_THRESH;
- public:
- void detect (IplImage *img,std::vector <CKeyPoint*>* keypoints);
- CSIFT();
- virtual ~CSIFT();
- };
- #endif // !defined(AFX_SIFT_H__4D3AF374_E90A_4459_8436_EAA7F7C4ECF8__INCLUDED_)