![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
#include <PyramidGL.h>


Public Member Functions | |
| void | DestroyPyramidData () |
| void | GetSimplifiedOrientation () |
| void | GenerateFeatureListCPU () |
| virtual void | GetFeatureOrientations () |
| virtual void | GenerateFeatureList () |
| void | DetectKeypointsEX () |
| void | ComputeGradient () |
| GLTexImage * | GetLevelTexture (int octave, int level) |
| GLTexImage * | GetBaseLevel (int octave, int dataName=DATA_GAUSSIAN) |
| GLTexImage * | GetLevelTexture (int octave, int level, int dataName) |
| void | BuildPyramid (GLTexInput *input) |
| void | InitPyramid (int w, int h, int ds) |
| void | FitPyramid (int w, int h) |
| void | ResizePyramid (int w, int h) |
| void | FitHistogramPyramid () |
| PyramidNaive (SiftParam &sp) | |
| ~PyramidNaive () | |
Public Member Functions inherited from PyramidGL | |
| void | InitializeContext () |
| void | SetLevelFeatureNum (int idx, int num) |
| void | GetTextureStorageSize (int num, int &fw, int &fh) |
| void | GetAlignedStorageSize (int num, int align, int &fw, int &fh) |
| virtual void | DownloadKeypoints () |
| virtual int | ResizeFeatureStorage () |
| virtual void | DestroyPerLevelData () |
| virtual void | DestroySharedData () |
| virtual void | GetFeatureDescriptors () |
| virtual void | GenerateFeatureListTex () |
| virtual void | ReshapeFeatureListCPU () |
| virtual void | GenerateFeatureDisplayVBO () |
| virtual void | CleanUpAfterSIFT () |
| PyramidGL (SiftParam &sp) | |
| virtual | ~PyramidGL () |
Public Member Functions inherited from SiftPyramid | |
| 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 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 () |
Protected Attributes | |
| GLTexImage * | _texPyramid |
| GLTexImage * | _auxPyramid |
Protected Attributes inherited from PyramidGL | |
| GLTexImage * | _histoPyramidTex |
| GLTexImage * | _featureTex |
| GLTexImage * | _descriptorTex |
| GLTexImage * | _orientationTex |
Protected Attributes inherited from SiftPyramid | |
| SiftParam & | param |
| int | _hpLevelNum |
| int * | _levelFeatureNum |
| int | _featureNum |
| float * | _histo_buffer |
| int | _existing_keypoints |
| vector< int > | _keypoint_index |
| GLuint * | _featureDisplayVBO |
| GLuint * | _featurePointVBO |
Additional Inherited Members | |
Public Types inherited from SiftPyramid | |
| 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 } |
Static Public Member Functions inherited from PyramidGL | |
| static void | InterlaceDescriptorF2 (int w, int h, float *buf, float *pd, int step) |
| static void | NormalizeDescriptor (int num, float *pd) |
Static Public Member Functions inherited from SiftPyramid | |
| 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) |
Static Public Member Functions inherited from ShaderMan | |
| static void | SelectInitialSmoothingFilter (int octave_min, SiftParam ¶m) |
| static void | UseShaderMarginCopy (int xmax, int ymax) |
| static void | UseShaderOrientation (int gtex, int width, int height, float sigma, int auxtex, float step, int keypoint_list) |
| static void | UseShaderDescriptor (int gtex, int otex, int dwidth, int fwidth, int width, int height, float sigma) |
| static void | UseShaderSimpleOrientation (int oTex, float sigma, float sigma_step) |
| static void | UseShaderCopyKeypoint () |
| static void | UseShaderGenVBO (float width, float fwidth, float size) |
| static void | UseShaderDebug () |
| static void | UseShaderZeroPass () |
| static void | UseShaderGenListStart (float fw, int tex0) |
| static void | UseShaderGenListStep (int tex, int tex0) |
| static void | UseShaderGenListEnd (int ktex) |
| static void | UseShaderGenListHisto () |
| static void | UseShaderGenListInit (int w, int h, int tight=1) |
| static void | UseShaderKeypoint (int texU, int texD) |
| static void | UseShaderGradientPass (int texP=0) |
| static void | UseShaderDisplayKeypoints () |
| static void | UseShaderDisplayGrad () |
| static void | UseShaderRGB2Gray () |
| static void | UseShaderDisplayDOG () |
| static void | UseShaderDisplayGaussian () |
| static void | FilterInitialImage (GLTexImage *tex, GLTexImage *buf) |
| static void | FilterSampledImage (GLTexImage *tex, GLTexImage *buf) |
| static void | FilterImage (FilterProgram *filter, GLTexImage *dst, GLTexImage *src, GLTexImage *tmp) |
| static void | TextureCopy (GLTexImage *dst, GLTexImage *src) |
| static void | TextureDownSample (GLTexImage *dst, GLTexImage *src, int scale=2) |
| static void | TextureUpSample (GLTexImage *dst, GLTexImage *src, int scale) |
| static void | InitShaderMan (SiftParam ¶m) |
| static void | DestroyShaders () |
| static int | HaveShaderMan () |
| static void | UnloadProgram () |
Public Attributes inherited from SiftPyramid | |
| 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 |
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 |
Static Public Attributes inherited from ShaderMan | |
| static ShaderBag * | s_bag = NULL |
Definition at line 65 of file PyramidGL.h.
| PyramidNaive::PyramidNaive | ( | SiftParam & | sp | ) |
Definition at line 59 of file PyramidGL.cpp.
References _auxPyramid, _texPyramid, and NULL.
| PyramidNaive::~PyramidNaive | ( | ) |
Definition at line 65 of file PyramidGL.cpp.
References DestroyPyramidData().
|
virtual |
Implements SiftPyramid.
Definition at line 589 of file PyramidGL.cpp.
References SiftParam::_level_ds, SiftParam::_level_max, SiftParam::_level_min, SiftPyramid::_octave_min, SiftPyramid::_octave_num, GlobalParam::_timingS, ShaderBag::f_gaussian_step, ShaderMan::FilterImage(), ShaderMan::FilterInitialImage(), ShaderMan::FilterSampledImage(), GLTexImage::FitTexViewPort(), GetBaseLevel(), GetLevelTexture(), LEVEL_FINISH, NULL, OCTAVE_FINISH, OCTAVE_START, SiftPyramid::param, ShaderMan::s_bag, ShaderMan::TextureDownSample(), ShaderMan::TextureUpSample(), ShaderMan::UnloadProgram(), and USE_TIMING.
|
virtual |
Implements SiftPyramid.
Definition at line 687 of file PyramidGL.cpp.
References SiftParam::_level_max, SiftParam::_level_min, SiftPyramid::_octave_min, SiftPyramid::_octave_num, GlobalParam::_timingS, GlobalParam::_verbose, GLTexImage::AttachToFBO(), GLTexImage::BindTex(), GlobalUtil::CLOCK(), GLTexImage::DrawQuadMT4(), GLTexImage::FitTexViewPort(), GetLevelTexture(), SiftPyramid::param, FrameBufferObject::UnattachTex(), GLTexImage::UnbindMultiTex(), ShaderMan::UnloadProgram(), and ShaderMan::UseShaderGradientPass().
| void PyramidNaive::DestroyPyramidData | ( | ) |
Definition at line 146 of file PyramidGL.cpp.
References _auxPyramid, _texPyramid, and NULL.
Referenced by ResizePyramid(), and ~PyramidNaive().
|
virtual |
Implements SiftPyramid.
Definition at line 727 of file PyramidGL.cpp.
References SiftPyramid::_down_sample_factor, SiftParam::_level_max, SiftParam::_level_min, SiftPyramid::_octave_min, SiftPyramid::_octave_num, GlobalParam::_timingL, GlobalParam::_timingO, GlobalParam::_timingS, GlobalParam::_UseSiftGPUEX, GlobalParam::_verbose, GLTexImage::AttachToFBO(), GLTexImage::BindTex(), GlobalUtil::CLOCK(), SiftPyramid::DATA_KEYPOINT, GLTexImage::DetachFBO(), GLTexImage::DrawQuadMT4(), GLTexImage::DrawQuadMT8(), GLTexImage::FitTexViewPort(), GetBaseLevel(), GetLevelTexture(), SiftPyramid::param, FrameBufferObject::UnattachTex(), GLTexImage::UnbindMultiTex(), ShaderMan::UnloadProgram(), ShaderMan::UseShaderGradientPass(), and ShaderMan::UseShaderKeypoint().
| void PyramidNaive::FitHistogramPyramid | ( | ) |
Definition at line 247 of file PyramidGL.cpp.
References PyramidGL::_histoPyramidTex, SiftPyramid::_hpLevelNum, SiftPyramid::_octave_min, SiftPyramid::_pyramid_octave_first, SiftPyramid::DATA_KEYPOINT, GetBaseLevel(), GLTexImage::GetImgHeight(), GLTexImage::GetImgWidth(), GLTexImage::SetImageSize(), and GLTexImage::ZeroHistoMargin().
Referenced by GenerateFeatureList().
| void PyramidNaive::FitPyramid | ( | int | w, |
| int | h | ||
| ) |
Definition at line 269 of file PyramidGL.cpp.
References SiftParam::_level_max, SiftParam::_level_min, SiftPyramid::_octave_min, SiftPyramid::_octave_num, GlobalParam::_octave_num_default, SiftPyramid::_pyramid_height, SiftPyramid::_pyramid_octave_first, SiftPyramid::_pyramid_octave_num, SiftPyramid::_pyramid_width, SiftPyramid::DATA_KEYPOINT, GetBaseLevel(), SiftPyramid::GetRequiredOctaveNum(), min(), SiftPyramid::param, and GLTexImage::SetImageSize().
Referenced by InitPyramid().
|
virtual |
Implements SiftPyramid.
Definition at line 966 of file PyramidGL.cpp.
References SiftParam::_dog_level_num, SiftPyramid::_down_sample_factor, GlobalParam::_FeatureCountThreshold, SiftPyramid::_featureNum, SiftPyramid::_levelFeatureNum, SiftPyramid::_octave_min, GlobalParam::_timingO, GlobalParam::_timingS, GlobalParam::_TruncateMethod, GlobalParam::_verbose, GlobalUtil::CLOCK(), FitHistogramPyramid(), FOR_EACH_LEVEL, FOR_EACH_OCTAVE, and SiftPyramid::param.
|
virtual |
Implements SiftPyramid.
Definition at line 1191 of file PyramidGL.cpp.
References SiftParam::_dog_level_num, SiftPyramid::_featureNum, PyramidGL::_featureTex, SiftPyramid::_levelFeatureNum, SiftPyramid::_octave_min, SiftPyramid::_octave_num, GlobalParam::_texTarget, GlobalParam::_verbose, GLTexImage::AttachToFBO(), GLTexImage::BindTex(), SiftPyramid::DATA_KEYPOINT, GetBaseLevel(), GLTexImage::GetImgHeight(), GLTexImage::GetImgWidth(), GLTexImage::GetTexHeight(), GLTexImage::GetTexWidth(), SiftPyramid::param, PyramidGL::SetLevelFeatureNum(), and GLTexImage::UnbindTex().
|
virtual |
Implements PyramidGL.
Definition at line 662 of file PyramidGL.cpp.
References _auxPyramid, SiftParam::_level_num, SiftPyramid::_octave_min, SiftPyramid::_octave_num, SiftPyramid::_pyramid_octave_first, _texPyramid, SiftPyramid::DATA_DOG, SiftPyramid::DATA_GAUSSIAN, SiftPyramid::DATA_GRAD, SiftPyramid::DATA_KEYPOINT, SiftPyramid::DATA_ROT, NULL, and SiftPyramid::param.
Referenced by BuildPyramid(), DetectKeypointsEX(), FitHistogramPyramid(), FitPyramid(), GenerateFeatureListCPU(), GetFeatureOrientations(), and ResizePyramid().
|
virtual |
Implements SiftPyramid.
Definition at line 1126 of file PyramidGL.cpp.
References SiftParam::_dog_level_num, SiftPyramid::_existing_keypoints, PyramidGL::_featureTex, GlobalParam::_KeepExtremumSign, SiftParam::_level_min, SiftPyramid::_levelFeatureNum, SiftPyramid::_octave_min, SiftPyramid::_octave_num, PyramidGL::_orientationTex, GlobalParam::_SubpixelLocalization, GlobalParam::_timingS, GLTexImage::BindTex(), count, SiftPyramid::DATA_KEYPOINT, GetBaseLevel(), SiftParam::GetLevelSigma(), GetLevelTexture(), NULL, SiftPyramid::param, FrameBufferObject::UnattachTex(), GLTexImage::UnbindMultiTex(), and ShaderMan::UseShaderOrientation().
|
virtual |
Implements SiftPyramid.
Definition at line 654 of file PyramidGL.cpp.
References SiftParam::_level_min, SiftParam::_level_num, SiftPyramid::_octave_min, SiftPyramid::_pyramid_octave_first, _texPyramid, and SiftPyramid::param.
Referenced by BuildPyramid(), ComputeGradient(), DetectKeypointsEX(), GetFeatureOrientations(), and GetSimplifiedOrientation().
|
virtual |
Implements SiftPyramid.
Definition at line 637 of file PyramidGL.cpp.
References _auxPyramid, SiftParam::_level_min, SiftParam::_level_num, SiftPyramid::_octave_min, SiftPyramid::_octave_num, SiftPyramid::_pyramid_octave_first, _texPyramid, SiftPyramid::DATA_DOG, SiftPyramid::DATA_GAUSSIAN, SiftPyramid::DATA_GRAD, SiftPyramid::DATA_KEYPOINT, SiftPyramid::DATA_ROT, NULL, and SiftPyramid::param.
|
virtual |
Implements SiftPyramid.
Definition at line 1467 of file PyramidGL.cpp.
References SiftParam::_dog_level_num, PyramidGL::_featureTex, SiftParam::_level_min, SiftPyramid::_levelFeatureNum, SiftPyramid::_octave_min, SiftPyramid::_octave_num, GLTexImage::BindTex(), SiftParam::GetLevelSigma(), GetLevelTexture(), GLTexImage::GetTexID(), SiftPyramid::param, GLTexImage::UnbindMultiTex(), and ShaderMan::UseShaderSimpleOrientation().
|
virtual |
Implements SiftPyramid.
Definition at line 307 of file PyramidGL.cpp.
References SiftPyramid::_allocated, SiftPyramid::_down_sample_factor, GlobalParam::_FitMemoryCap, GlobalParam::_ForceTightPyramid, GlobalParam::_MemCapGPU, SiftPyramid::_octave_min, GlobalParam::_octave_min_default, SiftPyramid::_pyramid_height, SiftPyramid::_pyramid_width, GlobalParam::_texMaxDim, GlobalParam::_verbose, FitPyramid(), max(), SiftPyramid::param, ResizePyramid(), and ShaderMan::SelectInitialSmoothingFilter().
|
virtual |
Implements SiftPyramid.
Definition at line 380 of file PyramidGL.cpp.
References SiftPyramid::_allocated, _auxPyramid, SiftParam::_level_num, SiftPyramid::_octave_min, SiftPyramid::_octave_num, GlobalParam::_octave_num_default, SiftPyramid::_pyramid_height, SiftPyramid::_pyramid_octave_first, SiftPyramid::_pyramid_octave_num, SiftPyramid::_pyramid_width, GlobalParam::_texMaxDim, _texPyramid, GlobalParam::_timingS, GlobalParam::_verbose, SiftPyramid::DATA_GAUSSIAN, SiftPyramid::DATA_KEYPOINT, PyramidGL::DestroyPerLevelData(), DestroyPyramidData(), QtCompat::endl(), GetBaseLevel(), SiftPyramid::GetRequiredOctaveNum(), GLTexImage::InitTexture(), min(), NULL, SiftPyramid::param, and PyramidGL::ResizeFeatureStorage().
Referenced by InitPyramid().
|
protected |
Definition at line 69 of file PyramidGL.h.
Referenced by DestroyPyramidData(), GetBaseLevel(), GetLevelTexture(), PyramidNaive(), and ResizePyramid().
|
protected |
Definition at line 68 of file PyramidGL.h.
Referenced by DestroyPyramidData(), GetBaseLevel(), GetLevelTexture(), PyramidNaive(), and ResizePyramid().