www.pudn.com > OPENCV_SIFT_VC6.rar > ScaleSpace.h
// ScaleSpace.h: interface for the CScaleSpace class. // ////////////////////////////////////////////////////////////////////// #if !defined(AFX_SCALESPACE_H__FFE6650E_611F_4919_B6CD_C52C4566551B__INCLUDED_) #define AFX_SCALESPACE_H__FFE6650E_611F_4919_B6CD_C52C4566551B__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "cv.h" #include#include "KeyPoint.h" #define PI 3.141568 class CScalePoint { public: CScalePoint (int x,int y,int level) { m_x = x; m_y = y; m_level = level; }; int m_x, m_y; int m_level; double m_fineX,m_fineY; double m_fineS; double m_DValue; }; class CScaleSpace { public: void ClearMagnitudeAndDirectionMaps(); void GenMagnitudeAndDirectionMaps(); CScaleSpace (int s,double basePixScale); void findPeak (double r,double dogThresh,std::vector * vec); int getDoGCount(); IplImage* getDoG (int i); void buildDoG(IplImage *img,double sigma,double basePixScale); virtual ~CScaleSpace(); void filterAndLocalizePeaks (std::vector & peaks,std::vector * filtered, double dValueLoThresh, double scaleAdjustThresh, int relocationMaximum); void GenerateKeypoints (std::vector & localizedPeaks, std::vector * keypoints,int scaleCount, double octaveSigma); private: void CreateDescriptors (std::vector * keypoints, IplImage* magnitude, IplImage* direction, double considerScaleFactor, int descDim, int directionCount, double fvGradHicap); void GenerateKeypointSingle (double imgScale, CScalePoint point, int binCount, double peakRelThresh, int scaleCount, double octaveSigma,std::vector *vec); void AverageWeakBins (double* bins, int binCount); bool InterpolateOrientation (double left, double middle, double right, double* degreeCorrection, double* peakValue); bool LocalizeIsWeak (CScalePoint& peak, int steps, CvMat* processed); void GetAdjustment (CScalePoint& point, int level, int x, int y, double* dp,CvMat* adj); int m_scaleLevel,m_dogCount,m_gaussCount; // Different of Gaussian Image double m_basePixScale; IplImage **m_dogImgs; IplImage **m_gaussImgs; IplImage **m_magnitudes,**m_directions; }; #endif // !defined(AFX_SCALESPACE_H__FFE6650E_611F_4919_B6CD_C52C4566551B__INCLUDED_)