ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
SiftPyramid Class Referenceabstract

#include <SiftPyramid.h>

Inheritance diagram for SiftPyramid:
Collaboration diagram for SiftPyramid:

Public Types

enum  {
  DATA_GAUSSIAN = 0 , DATA_DOG = 1 , DATA_KEYPOINT = 2 , DATA_GRAD = 3 ,
  DATA_ROT = 4 , DATA_NUM = 5
}
 
enum  { SIFT_SKIP_FILTERING = 0x01 , SIFT_SKIP_DETECTION = 0x02 , SIFT_SKIP_ORIENTATION = 0x04 , SIFT_RECT_DESCRIPTION = 0x08 }
 

Public Member Functions

virtual void RunSIFT (GLTexInput *input)
 
virtual void SaveSIFT (const char *szFileName)
 
virtual void CopyFeatureVector (float *keys, float *descriptors)
 
virtual void SetKeypointList (int num, const float *keys, int run_on_current, int skip_orientation)
 
virtual void GetFeatureDescriptors ()=0
 
virtual void GenerateFeatureListTex ()=0
 
virtual void ReshapeFeatureListCPU ()=0
 
virtual void GenerateFeatureDisplayVBO ()=0
 
virtual void DownloadKeypoints ()=0
 
virtual void GenerateFeatureListCPU ()=0
 
virtual void GenerateFeatureList ()=0
 
virtual GLTexImageGetLevelTexture (int octave, int level)=0
 
virtual GLTexImageGetLevelTexture (int octave, int level, int dataName)=0
 
virtual void BuildPyramid (GLTexInput *input)=0
 
virtual void ResizePyramid (int w, int h)=0
 
virtual void InitPyramid (int w, int h, int ds=0)=0
 
virtual void DetectKeypointsEX ()=0
 
virtual void ComputeGradient ()=0
 
virtual void GetFeatureOrientations ()=0
 
virtual void GetSimplifiedOrientation ()=0
 
virtual void CleanUpAfterSIFT ()
 
virtual int IsUsingRectDescription ()
 
void SetFailStatus ()
 inline functions, shared by all implementations More...
 
int GetSucessStatus ()
 
int GetFeatureNum ()
 
int GetHistLevelNum ()
 
const GLuint * GetFeatureDipslayVBO ()
 
const GLuint * GetPointDisplayVBO ()
 
const int * GetLevelFeatureNum ()
 
void GetPyramidTiming (float *timing)
 
void CleanupBeforeSIFT ()
 
 SiftPyramid (SiftParam &sp)
 
virtual ~SiftPyramid ()
 

Static Public Member Functions

static int GetRequiredOctaveNum (int inputsz)
 
- Static Public Member Functions inherited from GlobalUtil
static double CLOCK ()
 
static void StopTimer ()
 
static void StartTimer (const char *event)
 
static float GetElapsedTime ()
 
static void FitViewPort (int width, int height)
 
static void SetTextureParameter ()
 
static void SetTextureParameterUS ()
 
static void CheckErrorsGL (const char *location=NULL)
 
static bool CheckFramebufferStatus ()
 
static void SelectDisplay ()
 
static void InitGLParam (int NotTargetGL=0)
 
static void SetGLParam ()
 
static int CreateWindowEZ ()
 
static void CleanupOpenGL ()
 
static void SetDeviceParam (int argc, char **argv)
 
static int CreateWindowEZ (LiteWindow *window)
 

Public Attributes

float _timing [8]
 
int _octave_min
 
int _octave_num
 
int _pyramid_octave_num
 
int _pyramid_octave_first
 
int _pyramid_width
 
int _pyramid_height
 
int _down_sample_factor
 
int _allocated
 
int _alignment
 
int _siftgpu_failed
 
vector< float > _keypoint_buffer
 
vector< float > _descriptor_buffer
 

Protected Attributes

SiftParamparam
 
int _hpLevelNum
 
int * _levelFeatureNum
 
int _featureNum
 
float * _histo_buffer
 
int _existing_keypoints
 
vector< int > _keypoint_index
 
GLuint * _featureDisplayVBO
 
GLuint * _featurePointVBO
 

Additional Inherited Members

- Static Public Attributes inherited from GlobalParam
static GLuint _texTarget = GL_TEXTURE_RECTANGLE_ARB
 
static GLuint _iTexFormat =GL_RGBA32F_ARB
 
static int _texMaxDim = 3200
 
static int _texMaxDimGL = 4096
 
static int _texMinDim = 16
 
static int _MemCapGPU = 0
 
static int _FitMemoryCap = 0
 
static int _verbose = 1
 
static int _timingS = 1
 
static int _timingO = 0
 
static int _timingL = 0
 
static int _usePackedTex = 1
 
static int _IsNvidia = 0
 
static int _KeepShaderLoop = 0
 
static int _UseCUDA = 0
 
static int _UseOpenCL = 0
 
static int _UseDynamicIndexing = 0
 
static int _debug = 0
 
static int _MaxFilterWidth = -1
 
static float _FilterWidthFactor = 4.0f
 
static float _OrientationWindowFactor = 2.0f
 
static float _DescriptorWindowFactor = 3.0f
 
static int _MaxOrientation = 2
 
static int _OrientationPack2 = 0
 
static int _ListGenGPU = 1
 
static int _ListGenSkipGPU = 6
 
static int _SupportNVFloat = 0
 
static int _SupportTextureRG = 0
 
static int _FullSupported = 1
 
static float _MaxFeaturePercent = 0.005f
 
static int _MaxLevelFeatureNum = 4096
 
static int _DescriptorPPR = 8
 
static int _DescriptorPPT = 16
 
static int _FeatureTexBlock = 4
 
static int _NarrowFeatureTex = 0
 
static int _SubpixelLocalization = 1
 
static int _ProcessOBO = 0
 
static int _TruncateMethod = 0
 
static int _PreciseBorder = 1
 
static int _UseSiftGPUEX = 0
 
static int _ForceTightPyramid = 0
 
static int _octave_min_default =0
 
static int _octave_num_default =-1
 
static int _InitPyramidWidth =0
 
static int _InitPyramidHeight =0
 
static int _PreProcessOnCPU = 1
 
static int _GoodOpenGL = -1
 
static int _FixedOrientation = 0
 
static int _LoweOrigin = 0
 
static int _ExitAfterSIFT = 0
 
static int _NormalizedSIFT = 1
 
static int _BinarySIFT = 0
 
static int _KeepExtremumSign = 0
 
static int _FeatureCountThreshold = -1
 
static int _KeyPointListForceLevel0 = 0
 
static int _DarknessAdaption = 0
 
static float _OrientationExtraFactor
 
static float _OrientationGaussianFactor = 1.5f
 
static float _MulitiOrientationThreshold = 0.8f
 
static int _WindowInitX = -1
 
static int _WindowInitY = -1
 
static const char * _WindowDisplay = NULL
 
static int _DeviceIndex = 0
 

Detailed Description

Definition at line 49 of file SiftPyramid.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
DATA_GAUSSIAN 
DATA_DOG 
DATA_KEYPOINT 
DATA_GRAD 
DATA_ROT 
DATA_NUM 

Definition at line 52 of file SiftPyramid.h.

◆ anonymous enum

anonymous enum
Enumerator
SIFT_SKIP_FILTERING 
SIFT_SKIP_DETECTION 
SIFT_SKIP_ORIENTATION 
SIFT_RECT_DESCRIPTION 

Definition at line 60 of file SiftPyramid.h.

Constructor & Destructor Documentation

◆ SiftPyramid()

◆ ~SiftPyramid()

virtual SiftPyramid::~SiftPyramid ( )
inlinevirtual

Definition at line 165 of file SiftPyramid.h.

Member Function Documentation

◆ BuildPyramid()

virtual void SiftPyramid::BuildPyramid ( GLTexInput input)
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ CleanUpAfterSIFT()

virtual void SiftPyramid::CleanUpAfterSIFT ( )
inlinevirtual

Reimplemented in PyramidGL.

Definition at line 126 of file SiftPyramid.h.

◆ CleanupBeforeSIFT()

void SiftPyramid::CleanupBeforeSIFT ( )
inline

Definition at line 139 of file SiftPyramid.h.

References _siftgpu_failed, and _timing.

◆ ComputeGradient()

virtual void SiftPyramid::ComputeGradient ( )
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ CopyFeatureVector()

void SiftPyramid::CopyFeatureVector ( float *  keys,
float *  descriptors 
)
virtual

Definition at line 238 of file SiftPyramid.cpp.

References descriptors.

◆ DetectKeypointsEX()

virtual void SiftPyramid::DetectKeypointsEX ( )
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ DownloadKeypoints()

virtual void SiftPyramid::DownloadKeypoints ( )
pure virtual

Implemented in PyramidGL.

◆ GenerateFeatureDisplayVBO()

virtual void SiftPyramid::GenerateFeatureDisplayVBO ( )
pure virtual

Implemented in PyramidGL.

◆ GenerateFeatureList()

virtual void SiftPyramid::GenerateFeatureList ( )
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ GenerateFeatureListCPU()

virtual void SiftPyramid::GenerateFeatureListCPU ( )
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ GenerateFeatureListTex()

virtual void SiftPyramid::GenerateFeatureListTex ( )
pure virtual

Implemented in PyramidGL.

◆ GetFeatureDescriptors()

virtual void SiftPyramid::GetFeatureDescriptors ( )
pure virtual

Implemented in PyramidGL.

◆ GetFeatureDipslayVBO()

const GLuint* SiftPyramid::GetFeatureDipslayVBO ( )
inline

Definition at line 135 of file SiftPyramid.h.

References _featureDisplayVBO.

◆ GetFeatureNum()

int SiftPyramid::GetFeatureNum ( )
inline

Definition at line 133 of file SiftPyramid.h.

References _featureNum.

◆ GetFeatureOrientations()

virtual void SiftPyramid::GetFeatureOrientations ( )
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ GetHistLevelNum()

int SiftPyramid::GetHistLevelNum ( )
inline

Definition at line 134 of file SiftPyramid.h.

References _hpLevelNum.

◆ GetLevelFeatureNum()

const int* SiftPyramid::GetLevelFeatureNum ( )
inline

Definition at line 137 of file SiftPyramid.h.

References _levelFeatureNum.

◆ GetLevelTexture() [1/2]

virtual GLTexImage* SiftPyramid::GetLevelTexture ( int  octave,
int  level 
)
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ GetLevelTexture() [2/2]

virtual GLTexImage* SiftPyramid::GetLevelTexture ( int  octave,
int  level,
int  dataName 
)
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ GetPointDisplayVBO()

const GLuint* SiftPyramid::GetPointDisplayVBO ( )
inline

Definition at line 136 of file SiftPyramid.h.

References _featurePointVBO.

◆ GetPyramidTiming()

void SiftPyramid::GetPyramidTiming ( float *  timing)
inline

Definition at line 138 of file SiftPyramid.h.

References _timing.

◆ GetRequiredOctaveNum()

int SiftPyramid::GetRequiredOctaveNum ( int  inputsz)
static

◆ GetSimplifiedOrientation()

virtual void SiftPyramid::GetSimplifiedOrientation ( )
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ GetSucessStatus()

int SiftPyramid::GetSucessStatus ( )
inline

Definition at line 132 of file SiftPyramid.h.

References _siftgpu_failed.

◆ InitPyramid()

virtual void SiftPyramid::InitPyramid ( int  w,
int  h,
int  ds = 0 
)
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ IsUsingRectDescription()

virtual int SiftPyramid::IsUsingRectDescription ( )
inlinevirtual

Reimplemented in PyramidPacked.

Definition at line 127 of file SiftPyramid.h.

Referenced by PyramidGL::GenerateFeatureListTex(), and PyramidGL::GetFeatureDescriptors().

◆ ReshapeFeatureListCPU()

virtual void SiftPyramid::ReshapeFeatureListCPU ( )
pure virtual

Implemented in PyramidGL.

◆ ResizePyramid()

virtual void SiftPyramid::ResizePyramid ( int  w,
int  h 
)
pure virtual

Implemented in PyramidPacked, and PyramidNaive.

◆ RunSIFT()

◆ SaveSIFT()

void SiftPyramid::SaveSIFT ( const char *  szFileName)
virtual

Definition at line 264 of file SiftPyramid.cpp.

References GlobalParam::_BinarySIFT.

◆ SetFailStatus()

void SiftPyramid::SetFailStatus ( )
inline

inline functions, shared by all implementations

Definition at line 131 of file SiftPyramid.h.

References _siftgpu_failed.

◆ SetKeypointList()

void SiftPyramid::SetKeypointList ( int  num,
const float *  keys,
int  run_on_current,
int  skip_orientation 
)
virtual

copy the keypoints

Definition at line 244 of file SiftPyramid.cpp.

Member Data Documentation

◆ _alignment

int SiftPyramid::_alignment

◆ _allocated

◆ _descriptor_buffer

vector<float> SiftPyramid::_descriptor_buffer

Definition at line 97 of file SiftPyramid.h.

Referenced by PyramidGL::GetFeatureDescriptors().

◆ _down_sample_factor

◆ _existing_keypoints

◆ _featureDisplayVBO

GLuint* SiftPyramid::_featureDisplayVBO
protected

◆ _featureNum

◆ _featurePointVBO

GLuint* SiftPyramid::_featurePointVBO
protected

◆ _histo_buffer

float* SiftPyramid::_histo_buffer
protected

◆ _hpLevelNum

◆ _keypoint_buffer

vector<float> SiftPyramid::_keypoint_buffer

◆ _keypoint_index

vector<int> SiftPyramid::_keypoint_index
protected

◆ _levelFeatureNum

◆ _octave_min

◆ _octave_num

◆ _pyramid_height

◆ _pyramid_octave_first

◆ _pyramid_octave_num

◆ _pyramid_width

◆ _siftgpu_failed

int SiftPyramid::_siftgpu_failed

Definition at line 94 of file SiftPyramid.h.

Referenced by CleanupBeforeSIFT(), GetSucessStatus(), and SetFailStatus().

◆ _timing

float SiftPyramid::_timing[8]

Definition at line 80 of file SiftPyramid.h.

Referenced by CleanupBeforeSIFT(), and GetPyramidTiming().

◆ param


The documentation for this class was generated from the following files: