Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | List of all members
cv::ocl::SURF_OCL Class Reference

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

#include <ocl.hpp>

Inherits cv::Feature2D.

Public Types

enum  KeypointLayout {
  X_ROW = 0, Y_ROW, LAPLACIAN_ROW, OCTAVE_ROW,
  SIZE_ROW, ANGLE_ROW, HESSIAN_ROW, ROWS_COUNT
}
 
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 ()
 
 CV_WRAP_AS (detectAndCompute) virtual void operator()(InputArray image
 
CV_WRAP void compute (const Mat &image, CV_OUT CV_IN_OUT std::vector< KeyPoint > &keypoints, CV_OUT Mat &descriptors) const
 
void compute (const vector< Mat > &images, vector< vector< KeyPoint > > &keypoints, vector< Mat > &descriptors) const
 
CV_WRAP 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 CV_WRAP bool empty () const
 
virtual CV_WRAP bool empty () const
 
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
 
CV_WRAP int getInt (const string &name) const
 
CV_WRAP double getDouble (const string &name) const
 
CV_WRAP bool getBool (const string &name) const
 
CV_WRAP string getString (const string &name) const
 
CV_WRAP Mat getMat (const string &name) const
 
CV_WRAP vector< MatgetMatVector (const string &name) const
 
CV_WRAP 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 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)
 
CV_WRAP void setInt (const string &name, int value)
 
void setInt (const char *name, int value)
 
CV_WRAP void setDouble (const string &name, double value)
 
void setDouble (const char *name, double value)
 
CV_WRAP void setBool (const string &name, bool value)
 
void setBool (const char *name, bool value)
 
CV_WRAP void setString (const string &name, const string &value)
 
void setString (const char *name, const string &value)
 
CV_WRAP void setMat (const string &name, const Mat &value)
 
void setMat (const char *name, const Mat &value)
 
CV_WRAP void setMatVector (const string &name, const vector< Mat > &value)
 
void setMatVector (const char *name, const vector< Mat > &value)
 
CV_WRAP void setAlgorithm (const string &name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void setAlgorithm (const string &name, const Ptr< _Tp > &value)
 
void setAlgorithm (const char *name, const Ptr< Algorithm > &value)
 
template<typename _Tp >
void setAlgorithm (const char *name, const Ptr< _Tp > &value)
 
CV_WRAP string paramHelp (const string &name) const
 
int paramType (const char *name) const
 
CV_WRAP int paramType (const string &name) const
 
CV_WRAP void getParams (CV_OUT vector< string > &names) const
 
virtual void write (FileStorage &fs) const
 
virtual void read (const FileNode &fn)
 

Static Public Member Functions

static CV_WRAP Ptr< Feature2Dcreate (const string &name)
 
static CV_WRAP void getList (CV_OUT vector< string > &algorithms)
 
static CV_WRAP Ptr< Algorithm_create (const string &name)
 

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
 
InputArray mask
 
InputArray CV_OUT vector
< KeyPoint > & 
keypoints
 
InputArray CV_OUT vector
< KeyPoint > OutputArray 
descriptors
 
InputArray CV_OUT vector
< KeyPoint > OutputArray bool 
useProvidedKeypoints =false ) const = 0
 

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
 

Static Protected Member Functions

static void removeInvalidPoints (const Mat &mask, vector< KeyPoint > &keypoints)
 
static void removeBorderKeypoints (vector< KeyPoint > &keypoints, Size imageSize, int borderSize)
 

Detailed Description

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

Member Typedef Documentation

typedef Algorithm*(* cv::Algorithm::Constructor)(void)
inherited
typedef int(Algorithm::* cv::Algorithm::Getter)() const
inherited
typedef void(Algorithm::* cv::Algorithm::Setter)(int)
inherited

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

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::uploadKeypoints ( const vector< cv::KeyPoint > &  keypoints,
oclMat keypointsocl 
)

upload host keypoints to device memory

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

download keypoints from device to host memory

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

download descriptors from device to host memory

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

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

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

Reimplemented from cv::Algorithm.

void cv::ocl::SURF_OCL::releaseMemory ( )
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::computeImpl ( const Mat image,
vector< KeyPoint > &  keypoints,
Mat descriptors 
) const
protectedvirtual
cv::Feature2D::CV_WRAP_AS ( detectAndCompute  )
inherited
CV_WRAP void cv::Feature2D::compute ( const Mat image,
CV_OUT CV_IN_OUT std::vector< KeyPoint > &  keypoints,
CV_OUT Mat descriptors 
) const
inherited
void cv::DescriptorExtractor::compute ( const vector< Mat > &  images,
vector< vector< KeyPoint > > &  keypoints,
vector< Mat > &  descriptors 
) const
inherited
static CV_WRAP Ptr<Feature2D> cv::Feature2D::create ( const string name)
staticinherited
CV_WRAP void cv::FeatureDetector::detect ( const Mat image,
CV_OUT vector< KeyPoint > &  keypoints,
const Mat mask = Mat() 
) const
inherited
void cv::FeatureDetector::detect ( const vector< Mat > &  images,
vector< vector< KeyPoint > > &  keypoints,
const vector< Mat > &  masks = vector< Mat >() 
) const
inherited
virtual CV_WRAP bool cv::FeatureDetector::empty ( ) const
virtualinherited
virtual CV_WRAP bool cv::DescriptorExtractor::empty ( ) const
virtualinherited
static void cv::FeatureDetector::removeInvalidPoints ( const Mat mask,
vector< KeyPoint > &  keypoints 
)
staticprotectedinherited
string cv::Algorithm::name ( ) const
inherited
template<typename _Tp >
ParamType< _Tp >::member_type cv::Algorithm::get ( const string name) const
inherited
template<typename _Tp >
ParamType< _Tp >::member_type cv::Algorithm::get ( const char *  name) const
inherited
CV_WRAP int cv::Algorithm::getInt ( const string name) const
inherited
CV_WRAP double cv::Algorithm::getDouble ( const string name) const
inherited
CV_WRAP bool cv::Algorithm::getBool ( const string name) const
inherited
CV_WRAP string cv::Algorithm::getString ( const string name) const
inherited
CV_WRAP Mat cv::Algorithm::getMat ( const string name) const
inherited
CV_WRAP vector<Mat> cv::Algorithm::getMatVector ( const string name) const
inherited
CV_WRAP Ptr<Algorithm> cv::Algorithm::getAlgorithm ( const string name) const
inherited
void cv::Algorithm::set ( const string name,
int  value 
)
inherited
void cv::Algorithm::set ( const string name,
double  value 
)
inherited
void cv::Algorithm::set ( const string name,
bool  value 
)
inherited
void cv::Algorithm::set ( const string name,
const string value 
)
inherited
void cv::Algorithm::set ( const string name,
const Mat value 
)
inherited
void cv::Algorithm::set ( const string name,
const vector< Mat > &  value 
)
inherited
void cv::Algorithm::set ( const string name,
const Ptr< Algorithm > &  value 
)
inherited
template<typename _Tp >
void cv::Algorithm::set ( const string name,
const Ptr< _Tp > &  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
int  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
double  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
bool  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
const string value 
)
inherited
void cv::Algorithm::set ( const char *  name,
const Mat value 
)
inherited
void cv::Algorithm::set ( const char *  name,
const vector< Mat > &  value 
)
inherited
void cv::Algorithm::set ( const char *  name,
const Ptr< Algorithm > &  value 
)
inherited
template<typename _Tp >
void cv::Algorithm::set ( const char *  name,
const Ptr< _Tp > &  value 
)
inherited
CV_WRAP void cv::Algorithm::setInt ( const string name,
int  value 
)
inherited
void cv::Algorithm::setInt ( const char *  name,
int  value 
)
inherited
CV_WRAP void cv::Algorithm::setDouble ( const string name,
double  value 
)
inherited
void cv::Algorithm::setDouble ( const char *  name,
double  value 
)
inherited
CV_WRAP void cv::Algorithm::setBool ( const string name,
bool  value 
)
inherited
void cv::Algorithm::setBool ( const char *  name,
bool  value 
)
inherited
CV_WRAP void cv::Algorithm::setString ( const string name,
const string value 
)
inherited
void cv::Algorithm::setString ( const char *  name,
const string value 
)
inherited
CV_WRAP void cv::Algorithm::setMat ( const string name,
const Mat value 
)
inherited
void cv::Algorithm::setMat ( const char *  name,
const Mat value 
)
inherited
CV_WRAP void cv::Algorithm::setMatVector ( const string name,
const vector< Mat > &  value 
)
inherited
void cv::Algorithm::setMatVector ( const char *  name,
const vector< Mat > &  value 
)
inherited
CV_WRAP void cv::Algorithm::setAlgorithm ( const string name,
const Ptr< Algorithm > &  value 
)
inherited
template<typename _Tp >
void cv::Algorithm::setAlgorithm ( const string name,
const Ptr< _Tp > &  value 
)
inherited
void cv::Algorithm::setAlgorithm ( const char *  name,
const Ptr< Algorithm > &  value 
)
inherited
template<typename _Tp >
void cv::Algorithm::setAlgorithm ( const char *  name,
const Ptr< _Tp > &  value 
)
inherited
CV_WRAP string cv::Algorithm::paramHelp ( const string name) const
inherited
int cv::Algorithm::paramType ( const char *  name) const
inherited
CV_WRAP int cv::Algorithm::paramType ( const string name) const
inherited
CV_WRAP void cv::Algorithm::getParams ( CV_OUT vector< string > &  names) const
inherited
virtual void cv::Algorithm::write ( FileStorage fs) const
virtualinherited
virtual void cv::Algorithm::read ( const FileNode fn)
virtualinherited
static CV_WRAP void cv::Algorithm::getList ( CV_OUT vector< string > &  algorithms)
staticinherited
static CV_WRAP Ptr<Algorithm> cv::Algorithm::_create ( const string name)
staticinherited
static void cv::DescriptorExtractor::removeBorderKeypoints ( vector< KeyPoint > &  keypoints,
Size  imageSize,
int  borderSize 
)
staticprotectedinherited

Member Data Documentation

float cv::ocl::SURF_OCL::hessianThreshold
int cv::ocl::SURF_OCL::nOctaves
int cv::ocl::SURF_OCL::nOctaveLayers
bool cv::ocl::SURF_OCL::extended
bool cv::ocl::SURF_OCL::upright
float cv::ocl::SURF_OCL::keypointsRatio

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

oclMat cv::ocl::SURF_OCL::sum
oclMat cv::ocl::SURF_OCL::mask1
oclMat cv::ocl::SURF_OCL::maskSum
oclMat cv::ocl::SURF_OCL::intBuffer
oclMat cv::ocl::SURF_OCL::det
oclMat cv::ocl::SURF_OCL::trace
oclMat cv::ocl::SURF_OCL::maxPosBuffer
InputArray cv::Feature2D::mask
inherited
InputArray CV_OUT vector<KeyPoint>& cv::Feature2D::keypoints
inherited
InputArray CV_OUT vector<KeyPoint> OutputArray cv::Feature2D::descriptors
inherited
InputArray CV_OUT vector<KeyPoint> OutputArray bool cv::Feature2D::useProvidedKeypoints =false ) const = 0
inherited

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