OpenCV  2.4.13
Open Source Computer Vision
cv::ocl::SURF_OCL Class Reference

Speeded up robust features, port from GPU module. /////////////////////////////// SURF //////////////////////////////////////////. More...

#include <ocl.hpp>

Inheritance diagram for cv::ocl::SURF_OCL:
cv::Feature2D cv::FeatureDetector cv::DescriptorExtractor cv::Algorithm cv::Algorithm

Public Types

enum  KeypointLayout {
  X_ROW = 0, Y_ROW, LAPLACIAN_ROW, OCTAVE_ROW,
  SIZE_ROW, ANGLE_ROW, HESSIAN_ROW, ROWS_COUNT
}
 
- Public Types inherited from cv::Algorithm
typedef Algorithm *(* Constructor) (void)
 
typedef int(Algorithm::* Getter) () const
 
typedef void(Algorithm::* Setter) (int)
 

Public Member Functions

 SURF_OCL ()
 the default constructor More...
 
 SURF_OCL (double _hessianThreshold, int _nOctaves=4, int _nOctaveLayers=2, bool _extended=true, 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...
 
int descriptorType () const
 
void uploadKeypoints (const vector< cv::KeyPoint > &keypoints, oclMat &keypointsocl)
 upload host keypoints to device memory More...
 
void downloadKeypoints (const oclMat &keypointsocl, vector< KeyPoint > &keypoints)
 download keypoints from device to host memory More...
 
void downloadDescriptors (const oclMat &descriptorsocl, vector< float > &descriptors)
 download descriptors from device to host memory More...
 
void operator() (const oclMat &img, const oclMat &mask, oclMat &keypoints)
 
void operator() (const oclMat &img, const oclMat &mask, oclMat &keypoints, oclMat &descriptors, bool useProvidedKeypoints=false)
 
void operator() (const oclMat &img, const oclMat &mask, std::vector< KeyPoint > &keypoints)
 
void operator() (const oclMat &img, const oclMat &mask, std::vector< KeyPoint > &keypoints, oclMat &descriptors, bool useProvidedKeypoints=false)
 
void operator() (const oclMat &img, const oclMat &mask, std::vector< KeyPoint > &keypoints, std::vector< float > &descriptors, bool useProvidedKeypoints=false)
 
void operator() (InputArray img, InputArray mask, CV_OUT vector< KeyPoint > &keypoints) const
 finds the keypoints using fast hessian detector used in SURF More...
 
void operator() (InputArray img, InputArray mask, CV_OUT vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false) const
 finds the keypoints and computes their descriptors. Optionally it can compute descriptors for the user-provided keypoints More...
 
AlgorithmInfoinfo () const
 
void releaseMemory ()
 
- Public Member Functions inherited from cv::Feature2D
void compute (const Mat &image, CV_OUT CV_IN_OUT std::vector< KeyPoint > &keypoints, CV_OUT Mat &descriptors) const
 
- Public Member Functions inherited from cv::FeatureDetector
virtual ~FeatureDetector ()
 
void detect (const Mat &image, CV_OUT vector< KeyPoint > &keypoints, const Mat &mask=Mat()) const
 
void detect (const vector< Mat > &images, vector< vector< KeyPoint > > &keypoints, const vector< Mat > &masks=vector< Mat >()) const
 
virtual bool empty () const
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
string name () const
 
template<typename _Tp >
ParamType< _Tp >::member_type get (const string &name) const
 
template<typename _Tp >
ParamType< _Tp >::member_type get (const char *name) const
 
int getInt (const string &name) const
 
double getDouble (const string &name) const
 
bool getBool (const string &name) const
 
string getString (const string &name) const
 
Mat getMat (const string &name) const
 
vector< MatgetMatVector (const string &name) const
 
Ptr< AlgorithmgetAlgorithm (const string &name) const
 
void set (const string &name, int value)
 
void set (const string &name, double value)
 
void set (const string &name, bool value)
 
void set (const string &name, const string &value)
 
void set (const string &name, const Mat &value)
 
void set (const string &name, const vector< Mat > &value)
 
void set (const string &name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void set (const string &name, const Ptr< _Tp > &value)
 
void setInt (const string &name, int value)
 
void setDouble (const string &name, double value)
 
void setBool (const string &name, bool value)
 
void setString (const string &name, const string &value)
 
void setMat (const string &name, const Mat &value)
 
void setMatVector (const string &name, const vector< Mat > &value)
 
void setAlgorithm (const string &name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void setAlgorithm (const string &name, const Ptr< _Tp > &value)
 
void set (const char *name, int value)
 
void set (const char *name, double value)
 
void set (const char *name, bool value)
 
void set (const char *name, const string &value)
 
void set (const char *name, const Mat &value)
 
void set (const char *name, const vector< Mat > &value)
 
void set (const char *name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void set (const char *name, const Ptr< _Tp > &value)
 
void setInt (const char *name, int value)
 
void setDouble (const char *name, double value)
 
void setBool (const char *name, bool value)
 
void setString (const char *name, const string &value)
 
void setMat (const char *name, const Mat &value)
 
void setMatVector (const char *name, const vector< Mat > &value)
 
void setAlgorithm (const char *name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void setAlgorithm (const char *name, const Ptr< _Tp > &value)
 
string paramHelp (const string &name) const
 
int paramType (const char *name) const
 
int paramType (const string &name) const
 
void getParams (CV_OUT vector< string > &names) const
 
virtual void write (FileStorage &fs) const
 
virtual void read (const FileNode &fn)
 
- Public Member Functions inherited from cv::DescriptorExtractor
virtual ~DescriptorExtractor ()
 
void compute (const Mat &image, CV_OUT CV_IN_OUT vector< KeyPoint > &keypoints, CV_OUT Mat &descriptors) const
 
void compute (const vector< Mat > &images, vector< vector< KeyPoint > > &keypoints, vector< Mat > &descriptors) const
 
virtual bool empty () const
 

Public Attributes

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

Protected Member Functions

void detectImpl (const Mat &image, vector< KeyPoint > &keypoints, const Mat &mask) const
 
void computeImpl (const Mat &image, vector< KeyPoint > &keypoints, Mat &descriptors) const
 

Additional Inherited Members

- Static Public Member Functions inherited from cv::Feature2D
static Ptr< Feature2Dcreate (const string &name)
 
- Static Public Member Functions inherited from cv::FeatureDetector
static Ptr< FeatureDetectorcreate (const string &detectorType)
 
- Static Public Member Functions inherited from cv::Algorithm
static void getList (CV_OUT vector< string > &algorithms)
 
static Ptr< Algorithm_create (const string &name)
 
template<typename _Tp >
static Ptr< _Tp > create (const string &name)
 
- Static Public Member Functions inherited from cv::DescriptorExtractor
static Ptr< DescriptorExtractorcreate (const string &descriptorExtractorType)
 
- Static Protected Member Functions inherited from cv::FeatureDetector
static void removeInvalidPoints (const Mat &mask, vector< KeyPoint > &keypoints)
 
- Static Protected Member Functions inherited from cv::DescriptorExtractor
static void removeBorderKeypoints (vector< KeyPoint > &keypoints, Size imageSize, int borderSize)
 

Detailed Description

Speeded up robust features, port from GPU module. /////////////////////////////// SURF //////////////////////////////////////////.

Member Enumeration Documentation

Enumerator
X_ROW 
Y_ROW 
LAPLACIAN_ROW 
OCTAVE_ROW 
SIZE_ROW 
ANGLE_ROW 
HESSIAN_ROW 
ROWS_COUNT 

Constructor & Destructor Documentation

cv::ocl::SURF_OCL::SURF_OCL ( )

the default constructor

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

the full constructor taking all the necessary parameters

Member Function Documentation

void cv::ocl::SURF_OCL::computeImpl ( const Mat image,
vector< KeyPoint > &  keypoints,
Mat descriptors 
) const
protectedvirtual
int cv::ocl::SURF_OCL::descriptorSize ( ) const
virtual

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

Implements cv::DescriptorExtractor.

int cv::ocl::SURF_OCL::descriptorType ( ) const
virtual
void cv::ocl::SURF_OCL::detectImpl ( const Mat image,
vector< KeyPoint > &  keypoints,
const Mat mask 
) const
protectedvirtual

Implements cv::FeatureDetector.

void cv::ocl::SURF_OCL::downloadDescriptors ( const oclMat descriptorsocl,
vector< float > &  descriptors 
)

download descriptors from device to host memory

void cv::ocl::SURF_OCL::downloadKeypoints ( const oclMat keypointsocl,
vector< KeyPoint > &  keypoints 
)

download keypoints from device to host memory

AlgorithmInfo* cv::ocl::SURF_OCL::info ( ) const
virtual

Reimplemented from cv::Algorithm.

void cv::ocl::SURF_OCL::operator() ( const oclMat img,
const oclMat mask,
oclMat 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::ocl::SURF_OCL::operator() ( const oclMat img,
const oclMat mask,
oclMat keypoints,
oclMat 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::ocl::SURF_OCL::operator() ( const oclMat img,
const oclMat mask,
std::vector< KeyPoint > &  keypoints 
)
void cv::ocl::SURF_OCL::operator() ( const oclMat img,
const oclMat mask,
std::vector< KeyPoint > &  keypoints,
oclMat descriptors,
bool  useProvidedKeypoints = false 
)
void cv::ocl::SURF_OCL::operator() ( const oclMat img,
const oclMat mask,
std::vector< KeyPoint > &  keypoints,
std::vector< float > &  descriptors,
bool  useProvidedKeypoints = false 
)
void cv::ocl::SURF_OCL::operator() ( InputArray  img,
InputArray  mask,
CV_OUT vector< KeyPoint > &  keypoints 
) const

finds the keypoints using fast hessian detector used in SURF

void cv::ocl::SURF_OCL::operator() ( InputArray  img,
InputArray  mask,
CV_OUT vector< KeyPoint > &  keypoints,
OutputArray  descriptors,
bool  useProvidedKeypoints = false 
) const
virtual

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

Implements cv::Feature2D.

void cv::ocl::SURF_OCL::releaseMemory ( )
void cv::ocl::SURF_OCL::uploadKeypoints ( const vector< cv::KeyPoint > &  keypoints,
oclMat keypointsocl 
)

upload host keypoints to device memory

Member Data Documentation

oclMat cv::ocl::SURF_OCL::det
bool cv::ocl::SURF_OCL::extended
float cv::ocl::SURF_OCL::hessianThreshold
oclMat cv::ocl::SURF_OCL::intBuffer
float cv::ocl::SURF_OCL::keypointsRatio

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

oclMat cv::ocl::SURF_OCL::mask1
oclMat cv::ocl::SURF_OCL::maskSum
oclMat cv::ocl::SURF_OCL::maxPosBuffer
int cv::ocl::SURF_OCL::nOctaveLayers
int cv::ocl::SURF_OCL::nOctaves
oclMat cv::ocl::SURF_OCL::sum
oclMat cv::ocl::SURF_OCL::trace
bool cv::ocl::SURF_OCL::upright

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