| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #ifndef _PROGRAM_CU_H |
| | #define _PROGRAM_CU_H |
| | #if defined(CUDA_SIFTGPU_ENABLED) |
| |
|
| | class CuTexImage; |
| |
|
| | class ProgramCU |
| | { |
| | public: |
| | |
| | static void FinishCUDA(); |
| | static int CheckErrorCUDA(const char* location); |
| | static int CheckCudaDevice(int device); |
| | public: |
| | |
| | static void CreateFilterKernel(float sigma, float* kernel, int& width); |
| | template<int KWIDTH> static void FilterImage(CuTexImage *dst, CuTexImage *src, CuTexImage* buf); |
| | static void FilterImage(CuTexImage *dst, CuTexImage *src, CuTexImage* buf, float sigma); |
| | static void ComputeDOG(CuTexImage* gus, CuTexImage* dog, CuTexImage* got); |
| | static void ComputeKEY(CuTexImage* dog, CuTexImage* key, float Tdog, float Tedge); |
| | static void InitHistogram(CuTexImage* key, CuTexImage* hist); |
| | static void ReduceHistogram(CuTexImage*hist1, CuTexImage* hist2); |
| | static void GenerateList(CuTexImage* list, CuTexImage* hist); |
| | static void ComputeOrientation(CuTexImage*list, CuTexImage* got, CuTexImage*key, |
| | float sigma, float sigma_step, int existing_keypoint); |
| | static void ComputeDescriptor(CuTexImage*list, CuTexImage* got, CuTexImage* dtex, int rect = 0, int stream = 0); |
| |
|
| | |
| | static void SampleImageU(CuTexImage *dst, CuTexImage *src, int log_scale); |
| | static void SampleImageD(CuTexImage *dst, CuTexImage *src, int log_scale = 1); |
| | static void ReduceToSingleChannel(CuTexImage* dst, CuTexImage* src, int convert_rgb); |
| | static void ConvertByteToFloat(CuTexImage*src, CuTexImage* dst); |
| |
|
| | |
| | static void DisplayConvertDOG(CuTexImage* dog, CuTexImage* out); |
| | static void DisplayConvertGRD(CuTexImage* got, CuTexImage* out); |
| | static void DisplayConvertKEY(CuTexImage* key, CuTexImage* dog, CuTexImage* out); |
| | static void DisplayKeyPoint(CuTexImage* ftex, CuTexImage* out); |
| | static void DisplayKeyBox(CuTexImage* ftex, CuTexImage* out); |
| |
|
| | |
| | static void MultiplyDescriptor(CuTexImage* tex1, CuTexImage* tex2, CuTexImage* texDot, CuTexImage* texCRT); |
| | static void MultiplyDescriptorG(CuTexImage* texDes1, CuTexImage* texDes2, |
| | CuTexImage* texLoc1, CuTexImage* texLoc2, CuTexImage* texDot, CuTexImage* texCRT, |
| | float* H, float hdistmax, float* F, float fdistmax); |
| | static void GetRowMatch(CuTexImage* texDot, CuTexImage* texMatch, float distmax, float ratiomax); |
| | static void GetColMatch(CuTexImage* texCRT, CuTexImage* texMatch, float distmax, float ratiomax); |
| | }; |
| |
|
| | #endif |
| | #endif |
| |
|
| |
|