CVR-Lib last update 20 Sep 2009

cvr::fastHessianDetection Class Reference
[Feature Extraction]

Class fastHessianDetection. More...

#include <cvrFastHessianDetection.h>

Inheritance diagram for cvr::fastHessianDetection:

Inheritance graph
[legend]
Collaboration diagram for cvr::fastHessianDetection:

Collaboration graph
[legend]

List of all members.

Classes

class  parameters
 The parameters for the class fastHessianDetection. More...

Public Types

enum  eExtremaType { Minima, Maxima, Both }
enum  eLevelSelectionMethod { Blocks, Exponential }
enum  eLocationSelectionMode {
  All, Absolute, Relative, Conspicuous,
  Number
}

Public Member Functions

 fastHessianDetection ()
 fastHessianDetection (const parameters &par)
 fastHessianDetection (const fastHessianDetection &other)
virtual ~fastHessianDetection ()
virtual bool apply (const channel8 &src, list< location > &locs) const
bool apply (const channel8 &src, list< location > &locs, list< float > &strength) const
bool apply (const channel8 &src, list< location > &locs, list< float > &strength, int &numLocs) const
virtual bool apply (const channel8 &src, list< location > &locs, int &numLocs) const
virtual bool apply (const channel &src, list< location > &locs) const
bool apply (const channel &src, list< location > &locs, list< float > &strength) const
bool apply (const channel &src, list< location > &locs, list< float > &strength, int &numLocs) const
virtual bool apply (const channel &src, list< location > &locs, int &numLocs) const
bool sort (const list< location > &locs, const list< float > &strength, std::vector< location > &sortedLocs, fvector &sortedStrength) const
fastHessianDetectioncopy (const fastHessianDetection &other)
fastHessianDetectionoperator= (const fastHessianDetection &other)
virtual const std::string & name () const
virtual fastHessianDetectionclone () const
virtual fastHessianDetectionnewInstance () const
const parametersgetParameters () const
bool updateParameters ()


Detailed Description

Class fastHessianDetection.

The class cvr::fastHessianDetection is one of the available location detectors in the CVR-Lib , i.e. is a class used to detect interesing points in an image, considering also the "scale" at which the interesting information resides.

This particular method is part of the SURF approach for robust feature detection, as explained in detail in the paper:

Herbert Bay, Tinne Tuytelaars, and Luc Van Gool. SURF: Speeded Up Robust Features. In Proceedings of the 9th European Conference on Computer Vision, May 2006. Available at http://www.vision.ee.ethz.ch/~surf/papers.html

The implementation here provides some configuration possibilities, but is limited to provide the authors concept as reliable as the paper allowed.

See also:
fastHessianDetection::parameters.

surfLocalDescriptor


Member Enumeration Documentation

Types for locations to be found.

Enumerator:
Minima  Only detect minima of the determinant image.
Maxima  Only detect maxima of the determinant image.
Both  Detect both maxima and minima.

Types of level selection in the multiresolutional representation.

Enumerator:
Blocks  Original method suggested in the SURF paper, which uses blocks of levels separated by the same scale step, After a block has been computed, the next one duplicates the step.
Exponential  The exponential level selection method uses for the scales the equation $\alpha^n\sigma_B$.

Modes available for the selection of conspicuous locations.

These modes affect the way in which the threshold value is interpreted.

Enumerator:
All  Ignore the threshold, and compute all locations.
Absolute  The determinant of the hessian matrix has to be greater than the threshold value (or less than -threshold) to be considered.
Relative  The determinant of the hessian matrix has to be greater than a threshold value computed as a percentage of the greatest value found at each level.
Conspicuous  The determinant of the hessian matrix has to be greater than a threshold value computed as the mean of all values plus a number of times the standard deviation.
Number  At most the given number of (strongest) locations will be returned.


Constructor & Destructor Documentation

cvr::fastHessianDetection::fastHessianDetection (  ) 

Default constructor.

cvr::fastHessianDetection::fastHessianDetection ( const parameters par  ) 

Construct a functor using the given parameters.

cvr::fastHessianDetection::fastHessianDetection ( const fastHessianDetection other  ) 

Copy constructor.

Parameters:
other the object to be copied

virtual cvr::fastHessianDetection::~fastHessianDetection (  )  [virtual]

Destructor.


Member Function Documentation

virtual bool cvr::fastHessianDetection::apply ( const channel src,
list< location > &  locs,
int &  numLocs 
) const [virtual]

Compute the locations based on the determinant of the "fast Hessian" matrix.

This method provides numLocs = locs.size() directly. The reason is simple: speed. The size() method needs to count the elements, and this is usually done in the process.

Parameters:
src channel8 with the source image.
locs lists of detected locations.
numLocs number of locations detected.
Returns:
true if apply successful or false otherwise.

Implements cvr::locationDetection.

bool cvr::fastHessianDetection::apply ( const channel src,
list< location > &  locs,
list< float > &  strength,
int &  numLocs 
) const

Compute the locations based on the determinant of the "fast Hessian" matrix.

Parameters:
src channel8 with the source image.
locs lists of detected locations.
strength the determinant value of the hessian matrix at the center of the location.
numLocs number of location in locs and strength
Returns:
true if apply successful or false otherwise.

bool cvr::fastHessianDetection::apply ( const channel src,
list< location > &  locs,
list< float > &  strength 
) const

Compute the locations based on the determinant of the "fast Hessian" matrix.

Parameters:
src channel8 with the source image.
locs lists of detected locations.
strength the determinant value of the hessian matrix at the center of the location.
Returns:
true if apply successful or false otherwise.

virtual bool cvr::fastHessianDetection::apply ( const channel src,
list< location > &  locs 
) const [virtual]

Compute the locations based on the determinant of the "fast Hessian" matrix.

Parameters:
src channel8 with the source image.
locs lists of detected locations.
Returns:
true if apply successful or false otherwise.

Implements cvr::locationDetection.

virtual bool cvr::fastHessianDetection::apply ( const channel8 src,
list< location > &  locs,
int &  numLocs 
) const [virtual]

Compute the locations based on the determinant of the "fast Hessian" matrix.

This method provides numLocs = locs.size() directly. The reason is simple: speed. The size() method needs to count the elements, and this is usually done in the process.

Parameters:
src channel8 with the source image.
locs lists of detected locations.
numLocs number of locations detected.
Returns:
true if apply successful or false otherwise.

Implements cvr::locationDetection.

bool cvr::fastHessianDetection::apply ( const channel8 src,
list< location > &  locs,
list< float > &  strength,
int &  numLocs 
) const

Compute the locations based on the determinant of the "fast Hessian" matrix.

Parameters:
src channel8 with the source image.
locs lists of detected locations.
strength the determinant value of the hessian matrix at the center of the location.
numLocs number of location in locs and strength
Returns:
true if apply successful or false otherwise.

bool cvr::fastHessianDetection::apply ( const channel8 src,
list< location > &  locs,
list< float > &  strength 
) const

Compute the locations based on the determinant of the "fast Hessian" matrix.

Parameters:
src channel8 with the source image.
locs lists of detected locations.
strength the determinant value of the hessian matrix at the center of the location.
Returns:
true if apply successful or false otherwise.

virtual bool cvr::fastHessianDetection::apply ( const channel8 src,
list< location > &  locs 
) const [virtual]

Compute the locations based on the determinant of the "fast Hessian" matrix.

Parameters:
src channel8 with the source image.
locs lists of detected locations.
Returns:
true if apply successful or false otherwise.

Implements cvr::locationDetection.

virtual fastHessianDetection* cvr::fastHessianDetection::clone (  )  const [virtual]

Returns a pointer to a clone of this functor.

Implements cvr::locationDetection.

fastHessianDetection& cvr::fastHessianDetection::copy ( const fastHessianDetection other  ) 

Operates on a copy of the given arguments.

Parameters:
src channel with the source image.
locs lists of detected locations.
Returns:
true if apply successful or false otherwise. Copy data of "other" functor.
Parameters:
other the functor to be copied
Returns:
a reference to this functor object

const parameters& cvr::fastHessianDetection::getParameters (  )  const

Returns used parameters.

Reimplemented from cvr::locationDetection.

virtual const std::string& cvr::fastHessianDetection::name (  )  const [virtual]

Returns the complete name of the functor class.

Implements cvr::locationDetection.

virtual fastHessianDetection* cvr::fastHessianDetection::newInstance (  )  const [virtual]

Returns a pointer to a new instance of this functor.

Implements cvr::locationDetection.

fastHessianDetection& cvr::fastHessianDetection::operator= ( const fastHessianDetection other  ) 

Alias for copy member.

Parameters:
other the functor to be copied
Returns:
a reference to this functor object

bool cvr::fastHessianDetection::sort ( const list< location > &  locs,
const list< float > &  strength,
std::vector< location > &  sortedLocs,
fvector sortedStrength 
) const

Sort the locations according to their strength, in descending order: the strongest locations are always first.

This is useful to take a fixed number of the strongest locations.

The behaviour is influenced by the parameter settings of parameters::extrema. If it is set to Maxima, then the values are sorted as given, in descending order; if set to Minima, then the values are sorted in ascending order; if set to Both, then the absolute value of the strength is sorted in descending order.

Parameters:
locs the unsorted locations as provided by the apply method.
strength the corresponding strengths for the locations, as provided by the apply method. It has to have exactly the same size as the locs list.
sortedLocs the sorted locations as vector, to have access to the rank of the location
sortedStrength the sorted strength.
Returns:
true if successful or false otherwise.

bool cvr::fastHessianDetection::updateParameters (  )  [virtual]

Update parameters.

Reimplemented from cvr::parametersManager.


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

Generated on Sun Sep 20 22:08:45 2009 for CVR-Lib by Doxygen 1.5.8