|  | 
|  | 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