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