00001 00007 #ifndef P_DETECT_GPUSIFT_HH 00008 #define P_DETECT_GPUSIFT_HH 00009 00010 #include <limits.h> 00011 #include <GL/glut.h> 00012 #include <SiftGPU.h> 00013 00014 #include <blort/Recognizer3D/PNamespace.hh> 00015 #include <blort/Recognizer3D/KeypointDescriptor.hh> 00016 #include <blort/Recognizer3D/CodebookEntry.hh> 00017 #include <blort/Recognizer3D/Array.hh> 00018 00019 00020 #ifndef WIN32 00021 #include <dlfcn.h> 00022 #endif 00023 00024 00025 namespace P 00026 { 00027 00028 typedef float SIFTDescriptor[128]; 00029 00030 00031 class DetectGPUSIFT 00032 { 00033 private: 00034 SiftGPU *sift; 00035 00036 public: 00037 DetectGPUSIFT(); 00038 ~DetectGPUSIFT(); 00039 00040 void Operate(IplImage *img, Array<KeypointDescriptor*> &keys); 00041 //void Match(Array<KeypointDescriptor*> &keys, Array<CodebookEntry *> &cb, int (*matches)[2], int buf_size, int &num); 00042 00043 void Draw(IplImage *img, Array<KeypointDescriptor*> &keys); 00044 }; 00045 00046 00047 /************************** INLINE METHODES ******************************/ 00048 00049 00050 00051 } 00052 00053 #endif 00054