PyramidCL.h
Go to the documentation of this file.
00001 
00002 //      File:           PyramidCL.h
00003 //      Author:         Changchang Wu
00004 //      Description : interface for the PyramdCL
00005 //
00006 //      Copyright (c) 2007 University of North Carolina at Chapel Hill
00007 //      All Rights Reserved
00008 //
00009 //      Permission to use, copy, modify and distribute this software and its
00010 //      documentation for educational, research and non-profit purposes, without
00011 //      fee, and without a written agreement is hereby granted, provided that the
00012 //      above copyright notice and the following paragraph appear in all copies.
00013 //      
00014 //      The University of North Carolina at Chapel Hill make no representations
00015 //      about the suitability of this software for any purpose. It is provided
00016 //      'as is' without express or implied warranty. 
00017 //
00018 //      Please send BUG REPORTS to ccwu@cs.unc.edu
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 


siftgpu
Author(s): Changchang Wu (library), Bence Magyar (ROS wrapper)
autogenerated on Thu Jan 2 2014 11:38:01