Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00021
00022
00023
00024 #ifndef _PYRAMID_CL_H
00025 #define _PYRAMID_CL_H
00026 #if defined(CL_SIFTGPU_ENABLED)
00027
00028 class CLTexImage;
00029 class SiftPyramid;
00030 class ProgramBagCL;
00031 class PyramidCL: public SiftPyramid
00032 {
00033 CLTexImage* _inputTex;
00034 CLTexImage* _allPyramid;
00035 CLTexImage* _histoPyramidTex;
00036 CLTexImage* _featureTex;
00037 CLTexImage* _descriptorTex;
00038 CLTexImage* _orientationTex;
00039 ProgramBagCL* _OpenCL;
00040 GLTexImage* _bufferTEX;
00041 public:
00042 virtual void GetFeatureDescriptors();
00043 virtual void GenerateFeatureListTex();
00044 virtual void ReshapeFeatureListCPU();
00045 virtual void GenerateFeatureDisplayVBO();
00046 virtual void DestroySharedData();
00047 virtual void DestroyPerLevelData();
00048 virtual void DestroyPyramidData();
00049 virtual void DownloadKeypoints();
00050 virtual void GenerateFeatureListCPU();
00051 virtual void GenerateFeatureList();
00052 virtual GLTexImage* GetLevelTexture(int octave, int level);
00053 virtual GLTexImage* GetLevelTexture(int octave, int level, int dataName);
00054 virtual void BuildPyramid(GLTexInput * input);
00055 virtual void DetectKeypointsEX();
00056 virtual void ComputeGradient();
00057 virtual void GetFeatureOrientations();
00058 virtual void GetSimplifiedOrientation();
00059 virtual void InitPyramid(int w, int h, int ds = 0);
00060 virtual void ResizePyramid(int w, int h);
00061
00063 void CopyGradientTex();
00064 void FitPyramid(int w, int h);
00065
00066 void InitializeContext();
00067 int ResizeFeatureStorage();
00068 int FitHistogramPyramid(CLTexImage* tex);
00069 void SetLevelFeatureNum(int idx, int fcount);
00070 void ConvertInputToCL(GLTexInput* input, CLTexImage* output);
00071 GLTexImage* ConvertTexCL2GL(CLTexImage* tex, int dataName);
00072 CLTexImage* GetBaseLevel(int octave, int dataName = DATA_GAUSSIAN);
00073 private:
00074 void GenerateFeatureList(int i, int j, int reduction_count, vector<int>& hbuffer);
00075 public:
00076 PyramidCL(SiftParam& sp);
00077 virtual ~PyramidCL();
00078 };
00079
00080
00081 #endif
00082 #endif
00083