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