| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | #ifndef _PYRAMID_CU_H |
| | #define _PYRAMID_CU_H |
| | #if defined(CUDA_SIFTGPU_ENABLED) |
| |
|
| | class GLTexImage; |
| | class CuTexImage; |
| | class SiftPyramid; |
| | class PyramidCU:public SiftPyramid |
| | { |
| | CuTexImage* _inputTex; |
| | CuTexImage* _allPyramid; |
| | CuTexImage* _histoPyramidTex; |
| | CuTexImage* _featureTex; |
| | CuTexImage* _descriptorTex; |
| | CuTexImage* _orientationTex; |
| | GLuint _bufferPBO; |
| | GLTexImage* _bufferTEX; |
| | public: |
| | virtual void GetFeatureDescriptors(); |
| | virtual void GenerateFeatureListTex(); |
| | virtual void ReshapeFeatureListCPU(); |
| | virtual void GenerateFeatureDisplayVBO(); |
| | virtual void DestroySharedData(); |
| | virtual void DestroyPerLevelData(); |
| | virtual void DestroyPyramidData(); |
| | virtual void DownloadKeypoints(); |
| | virtual void GenerateFeatureListCPU(); |
| | virtual void GenerateFeatureList(); |
| | virtual GLTexImage* GetLevelTexture(int octave, int level); |
| | virtual GLTexImage* GetLevelTexture(int octave, int level, int dataName); |
| | virtual void BuildPyramid(GLTexInput * input); |
| | virtual void DetectKeypointsEX(); |
| | virtual void ComputeGradient(); |
| | virtual void GetFeatureOrientations(); |
| | virtual void GetSimplifiedOrientation(); |
| | virtual void InitPyramid(int w, int h, int ds = 0); |
| | virtual void ResizePyramid(int w, int h); |
| | virtual int IsUsingRectDescription(){return _existing_keypoints & SIFT_RECT_DESCRIPTION; } |
| | |
| | void CopyGradientTex(); |
| | void FitPyramid(int w, int h); |
| |
|
| | void InitializeContext(); |
| | int ResizeFeatureStorage(); |
| | int FitHistogramPyramid(CuTexImage* tex); |
| | void SetLevelFeatureNum(int idx, int fcount); |
| | void ConvertInputToCU(GLTexInput* input); |
| | GLTexImage* ConvertTexCU2GL(CuTexImage* tex, int dataName); |
| | CuTexImage* GetBaseLevel(int octave, int dataName = DATA_GAUSSIAN); |
| | void TruncateWidth(int& w) { w = GLTexInput::TruncateWidthCU(w); } |
| | |
| | static int CheckCudaDevice(int device); |
| | private: |
| | void GenerateFeatureList(int i, int j, int reduction_count, vector<int>& hbuffer); |
| | public: |
| | PyramidCU(SiftParam& sp); |
| | virtual ~PyramidCU(); |
| | }; |
| |
|
| |
|
| |
|
| | #endif |
| | #endif |
| |
|