Go to the documentation of this file.00001
00002
00003
00004
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00021
00022
00023
00024 #ifndef CU_SIFT_MATCH_H
00025 #define CU_SIFT_MATCH_H
00026 #if defined(CUDA_SIFTGPU_ENABLED)
00027
00028 class CuTexImage;
00029 class SiftMatchCU:public SiftMatchGPU
00030 {
00031 private:
00032
00033 CuTexImage _texLoc[2];
00034 CuTexImage _texDes[2];
00035 CuTexImage _texDot;
00036 CuTexImage _texMatch[2];
00037 CuTexImage _texCRT;
00038
00039
00040
00041 int _max_sift;
00042 int _num_sift[2];
00043 int _id_sift[2];
00044 int _have_loc[2];
00045
00046
00047 int _initialized;
00048 vector<int> sift_buffer;
00049 private:
00050 int GetBestMatch(int max_match, int match_buffer[][2], float distmax, float ratiomax, int mbm);
00051 public:
00052 SiftMatchCU(int max_sift);
00053 virtual ~SiftMatchCU(){};
00054 void InitSiftMatch();
00055 void SetMaxSift(int max_sift);
00056 void SetDescriptors(int index, int num, const unsigned char * descriptor, int id = -1);
00057 void SetDescriptors(int index, int num, const float * descriptor, int id = -1);
00058 void SetFeautreLocation(int index, const float* locatoins, int gap);
00059 int GetSiftMatch(int max_match, int match_buffer[][2], float distmax, float ratiomax, int mbm);
00060 int GetGuidedSiftMatch(int max_match, int match_buffer[][2], float H[3][3], float F[3][3],
00061 float distmax, float ratiomax, float hdistmax, float fdistmax, int mbm);
00063 static int CheckCudaDevice(int device);
00064 };
00065
00066 #endif
00067 #endif
00068