| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| |
|
| |
|
| | #ifndef CU_SIFT_MATCH_H |
| | #define CU_SIFT_MATCH_H |
| | #if defined(CUDA_SIFTGPU_ENABLED) |
| |
|
| | class CuTexImage; |
| | class SiftMatchCU:public SiftMatchGPU |
| | { |
| | private: |
| | |
| | CuTexImage _texLoc[2]; |
| | CuTexImage _texDes[2]; |
| | CuTexImage _texDot; |
| | CuTexImage _texMatch[2]; |
| | CuTexImage _texCRT; |
| |
|
| | |
| | |
| | int _num_sift[2]; |
| | int _id_sift[2]; |
| | int _have_loc[2]; |
| |
|
| | |
| | int _initialized; |
| | vector<int> sift_buffer; |
| | private: |
| | int GetBestMatch(int max_match, uint32_t match_buffer[][2], float distmax, float ratiomax, int mbm); |
| | public: |
| | SiftMatchCU(int max_sift); |
| | virtual ~SiftMatchCU(){}; |
| | void InitSiftMatch(); |
| | bool Allocate(int max_sift, int mbm) override; |
| | void SetMaxSift(int max_sift) override; |
| | void SetDescriptors(int index, int num, const unsigned char * descriptor, int id = -1); |
| | void SetDescriptors(int index, int num, const float * descriptor, int id = -1); |
| | void SetFeautreLocation(int index, const float* locatoins, int gap); |
| | int GetSiftMatch(int max_match, uint32_t match_buffer[][2], float distmax, float ratiomax, int mbm); |
| | int GetGuidedSiftMatch(int max_match, uint32_t match_buffer[][2], float* H, float* F, |
| | float distmax, float ratiomax, float hdistmax, float fdistmax, int mbm); |
| | |
| | static int CheckCudaDevice(int device); |
| | }; |
| |
|
| | #endif |
| | #endif |
| |
|
| |
|