OpenCV  2.4.13
Open Source Computer Vision
cv::gpu::SURF_GPU Class Reference

#include <gpu.hpp>

Public Types

enum  KeypointLayout {
  X_ROW = 0, Y_ROW, LAPLACIAN_ROW, OCTAVE_ROW,
  SIZE_ROW, ANGLE_ROW, HESSIAN_ROW, ROWS_COUNT
}
 

Public Member Functions

 SURF_GPU ()
 the default constructor More...
 
 SURF_GPU (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 descriptorSize () const
 returns the descriptor size in float's (64 or 128) More...
 
void uploadKeypoints (const std::vector< KeyPoint > &keypoints, GpuMat &keypointsGPU)
 upload host keypoints to device memory More...
 
void downloadKeypoints (const GpuMat &keypointsGPU, std::vector< KeyPoint > &keypoints)
 download keypoints from device to host memory More...
 
void downloadDescriptors (const GpuMat &descriptorsGPU, std::vector< float > &descriptors)
 download descriptors 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 ()
 

Public Attributes

double hessianThreshold
 
int nOctaves
 
int nOctaveLayers
 
bool extended
 
bool upright
 
float keypointsRatio
 max keypoints = min(keypointsRatio * img.size().area(), 65535) More...
 
GpuMat sum
 
GpuMat mask1
 
GpuMat maskSum
 
GpuMat intBuffer
 
GpuMat det
 
GpuMat trace
 
GpuMat maxPosBuffer
 

Member Enumeration Documentation

Enumerator
X_ROW 
Y_ROW 
LAPLACIAN_ROW 
OCTAVE_ROW 
SIZE_ROW 
ANGLE_ROW 
HESSIAN_ROW 
ROWS_COUNT 

Constructor & Destructor Documentation

cv::gpu::SURF_GPU::SURF_GPU ( )

the default constructor

cv::gpu::SURF_GPU::SURF_GPU ( double  _hessianThreshold,
int  _nOctaves = 4,
int  _nOctaveLayers = 2,
bool  _extended = false,
float  _keypointsRatio = 0.01f,
bool  _upright = false 
)
explicit

the full constructor taking all the necessary parameters

Member Function Documentation

int cv::gpu::SURF_GPU::descriptorSize ( ) const

returns the descriptor size in float's (64 or 128)

void cv::gpu::SURF_GPU::downloadDescriptors ( const GpuMat descriptorsGPU,
std::vector< float > &  descriptors 
)

download descriptors from device to host memory

void cv::gpu::SURF_GPU::downloadKeypoints ( const GpuMat keypointsGPU,
std::vector< KeyPoint > &  keypoints 
)

download keypoints from device to host memory

void cv::gpu::SURF_GPU::operator() ( const GpuMat img,
const GpuMat mask,
GpuMat keypoints 
)

finds the keypoints using fast hessian detector used in SURF supports CV_8UC1 images keypoints will have nFeature cols and 6 rows keypoints.ptr<float>(X_ROW)[i] will contain x coordinate of i'th feature keypoints.ptr<float>(Y_ROW)[i] will contain y coordinate of i'th feature keypoints.ptr<float>(LAPLACIAN_ROW)[i] will contain laplacian sign of i'th feature keypoints.ptr<float>(OCTAVE_ROW)[i] will contain octave of i'th feature keypoints.ptr<float>(SIZE_ROW)[i] will contain size of i'th feature keypoints.ptr<float>(ANGLE_ROW)[i] will contain orientation of i'th feature keypoints.ptr<float>(HESSIAN_ROW)[i] will contain response of i'th feature

void cv::gpu::SURF_GPU::operator() ( const GpuMat img,
const GpuMat mask,
GpuMat keypoints,
GpuMat descriptors,
bool  useProvidedKeypoints = false 
)

finds the keypoints and computes their descriptors. Optionally it can compute descriptors for the user-provided keypoints and recompute keypoints direction

void cv::gpu::SURF_GPU::operator() ( const GpuMat img,
const GpuMat mask,
std::vector< KeyPoint > &  keypoints 
)
void cv::gpu::SURF_GPU::operator() ( const GpuMat img,
const GpuMat mask,
std::vector< KeyPoint > &  keypoints,
GpuMat descriptors,
bool  useProvidedKeypoints = false 
)
void cv::gpu::SURF_GPU::operator() ( const GpuMat img,
const GpuMat mask,
std::vector< KeyPoint > &  keypoints,
std::vector< float > &  descriptors,
bool  useProvidedKeypoints = false 
)
void cv::gpu::SURF_GPU::releaseMemory ( )
void cv::gpu::SURF_GPU::uploadKeypoints ( const std::vector< KeyPoint > &  keypoints,
GpuMat keypointsGPU 
)

upload host keypoints to device memory

Member Data Documentation

GpuMat cv::gpu::SURF_GPU::det
bool cv::gpu::SURF_GPU::extended
double cv::gpu::SURF_GPU::hessianThreshold
GpuMat cv::gpu::SURF_GPU::intBuffer
float cv::gpu::SURF_GPU::keypointsRatio

max keypoints = min(keypointsRatio * img.size().area(), 65535)

GpuMat cv::gpu::SURF_GPU::mask1
GpuMat cv::gpu::SURF_GPU::maskSum
GpuMat cv::gpu::SURF_GPU::maxPosBuffer
int cv::gpu::SURF_GPU::nOctaveLayers
int cv::gpu::SURF_GPU::nOctaves
GpuMat cv::gpu::SURF_GPU::sum
GpuMat cv::gpu::SURF_GPU::trace
bool cv::gpu::SURF_GPU::upright

The documentation for this class was generated from the following file: