www.pudn.com > OPENCV_SIFT_VC6.rar > SIFT.h


// 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  
#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 * keypoints); 
	CSIFT(); 
	virtual ~CSIFT(); 
 
}; 
 
 
#endif // !defined(AFX_SIFT_H__4D3AF374_E90A_4459_8436_EAA7F7C4ECF8__INCLUDED_)