| 
|   | SURF_CUDA () | 
|   | the default constructor  More...
  | 
|   | 
|   | SURF_CUDA (double _hessianThreshold, int _nOctaves=4, int _nOctaveLayers=2, bool _extended=false, float _keypointsRatio=0.01f, bool _upright=false) | 
|   | the full constructor taking all the necessary parameters  More...
  | 
|   | 
| int  | defaultNorm () const | 
|   | returns the default norm type  More...
  | 
|   | 
| int  | descriptorSize () const | 
|   | returns the descriptor size in float's (64 or 128)  More...
  | 
|   | 
| void  | downloadDescriptors (const GpuMat &descriptorsGPU, std::vector< float > &descriptors) | 
|   | download descriptors from device to host memory  More...
  | 
|   | 
| void  | downloadKeypoints (const GpuMat &keypointsGPU, std::vector< KeyPoint > &keypoints) | 
|   | download keypoints from device to host memory  More...
  | 
|   | 
| void  | operator() (const GpuMat &img, const GpuMat &mask, GpuMat &keypoints) | 
|   | 
| void  | operator() (const GpuMat &img, const GpuMat &mask, GpuMat &keypoints, GpuMat &descriptors, bool useProvidedKeypoints=false) | 
|   | 
| void  | operator() (const GpuMat &img, const GpuMat &mask, std::vector< KeyPoint > &keypoints) | 
|   | 
| void  | operator() (const GpuMat &img, const GpuMat &mask, std::vector< KeyPoint > &keypoints, GpuMat &descriptors, bool useProvidedKeypoints=false) | 
|   | 
| void  | operator() (const GpuMat &img, const GpuMat &mask, std::vector< KeyPoint > &keypoints, std::vector< float > &descriptors, bool useProvidedKeypoints=false) | 
|   | 
| void  | releaseMemory () | 
|   | 
| void  | uploadKeypoints (const std::vector< KeyPoint > &keypoints, GpuMat &keypointsGPU) | 
|   | upload host keypoints to device memory  More...
  | 
|   | 
Class used for extracting Speeded Up Robust Features (SURF) from an image. : 
The class SURF_CUDA implements Speeded Up Robust Features descriptor. There is a fast multi-scale Hessian keypoint detector that can be used to find the keypoints (which is the default option). But the descriptors can also be computed for the user-specified keypoints. Only 8-bit grayscale images are supported.
The class SURF_CUDA can store results in the GPU and CPU memory. It provides functions to convert results between CPU and GPU version ( uploadKeypoints, downloadKeypoints, downloadDescriptors ). The format of CPU results is the same as SURF results. GPU results are stored in GpuMat. The keypoints matrix is \(\texttt{nFeatures} \times 7\) matrix with the CV_32FC1 type.
- keypoints.ptr<float>(X_ROW)[i] contains x coordinate of the i-th feature.
 
- keypoints.ptr<float>(Y_ROW)[i] contains y coordinate of the i-th feature.
 
- keypoints.ptr<float>(LAPLACIAN_ROW)[i] contains the laplacian sign of the i-th feature.
 
- keypoints.ptr<float>(OCTAVE_ROW)[i] contains the octave of the i-th feature.
 
- keypoints.ptr<float>(SIZE_ROW)[i] contains the size of the i-th feature.
 
- keypoints.ptr<float>(ANGLE_ROW)[i] contain orientation of the i-th feature.
 
- keypoints.ptr<float>(HESSIAN_ROW)[i] contains the response of the i-th feature.
 
The descriptors matrix is \(\texttt{nFeatures} \times \texttt{descriptorSize}\) matrix with the CV_32FC1 type.
The class SURF_CUDA uses some buffers and provides access to it. All buffers can be safely released between function calls.
- See also
 - SURF
 
- Note
 
- An example for using the SURF keypoint matcher on GPU can be found at opencv_source_code/samples/gpu/surf_keypoint_matcher.cpp