LTI-Lib latest version v1.9 - last update 10 Apr 2010

lti::axOGDFeature Class Reference

OGD based texture feature. More...

#include <ltiAxOGDFeature.h>

Inheritance diagram for lti::axOGDFeature:
Inheritance graph
[legend]
Collaboration diagram for lti::axOGDFeature:
Collaboration graph
[legend]

List of all members.

Classes

class  parameters
 The parameters for the class axOGDFeature. More...

Public Member Functions

 axOGDFeature ()
 axOGDFeature (const axOGDFeature &other)
virtual ~axOGDFeature ()
virtual const char * getTypeName () const
virtual bool use (const channel &src)
virtual bool use (const channel &center, const channel &surround)
virtual bool apply (const point &pos, dvector &dest) const
bool apply (const channel &src, dvector &dest) const
bool apply (const image &src, dvector &dest) const
bool apply (const channel &src, channel &a0, channel &a1, channel &theta1) const
bool apply (const channel &src, channel &a0, channel &a1, channel &a2, channel &theta1, channel &theta2) const
bool apply (const channel &center, const channel &sround, dvector &dest) const
bool apply (const channel &src, const std::list< location > &locs, std::list< dvector > &dest)
bool apply (const image &src, const std::list< location > &locs, std::list< dvector > &dest)
bool apply (const channel &center, const channel &surround, const std::list< location > &locs, std::list< dvector > &dest)
axOGDFeaturecopy (const axOGDFeature &other)
virtual functorclone () const
const parametersgetParameters () const

Protected Attributes

std::vector< channeltheChannels
int ogdOrder
int numLevels

Detailed Description

OGD based texture feature.

Functor for texture feature extraction that uses the steerability property of the oriented gaussian derivatives (OGD) to generate rotation invariant feature vectors.

The description of this feature can be found on Alvarado, P., Doerfler, P. and Wickel, J. "Axon2 - A visual object recognition system for non-rigid objects" SPPRA July, 2001 (http://www.techinfo.rwth-aachen.de/Veroeffentlichungen/V003_2001.pdf)

The basic idea is to compute the "energy" of a region (a location for local features or the whole image for global features) as a steerable function.

This energy is computed for different "power" channels, which are the result of convolving the images with OGD filters of a specific order.

In some sense, the first order OGD compute some "edge" energy, while second order OGD compute some "line" energy.


Constructor & Destructor Documentation

lti::axOGDFeature::axOGDFeature (  ) 

Default constructor.

lti::axOGDFeature::axOGDFeature ( const axOGDFeature other  ) 

Copy constructor.

Parameters:
other the object to be copied
virtual lti::axOGDFeature::~axOGDFeature (  )  [virtual]

Destructor.


Member Function Documentation

bool lti::axOGDFeature::apply ( const channel center,
const channel surround,
const std::list< location > &  locs,
std::list< dvector > &  dest 
)

Extracts the opponent color OGD features for each given location.

The radius of each location is used to determine which scale should be used in the generation of each feature vector.

Parameters:
center original channel considered as "center"
surround channel considered as surround. This must have the same size as center.
locs the locations that need to be analyzed.
dest the list of feature vectors. This list will have the same size as locs. The feature vector at position p will correspond to the location at position p.
Returns:
true if successful, of false otherwise.
bool lti::axOGDFeature::apply ( const image src,
const std::list< location > &  locs,
std::list< dvector > &  dest 
)

Extracts the OGD features for each given location.

The image will be splitted in its red, green and blue components, and the feature vectors will be concatenated. The radius of each location is used to determine which scale should be used in the generation of each feature vector.

Parameters:
src original channel to be analyzed.
locs the locations that need to be analyzed.
dest the list of feature vectors. This list will have the same size as locs. The feature vector at position p will correspond to the location at position p.
Returns:
true if successful, of false otherwise.
bool lti::axOGDFeature::apply ( const channel src,
const std::list< location > &  locs,
std::list< dvector > &  dest 
)

Extracts the OGD features for each given location.

The radius of each location is used to determine which scale should be used in the generation of each feature vector.

Parameters:
src original channel to be analyzed.
locs the locations that need to be analyzed.
dest the list of feature vectors. This list will have the same size as locs. The feature vector at position p will correspond to the location at position p.
Returns:
true if successful, of false otherwise.
bool lti::axOGDFeature::apply ( const channel center,
const channel sround,
dvector dest 
) const

Extracts the OGD rotation invariant opponent color feature from the given color channels.

Center and Surround must have the same sizes.

Parameters:
center the center channel.
sround the surround channel.
dest the feature vector
Returns:
true if apply successful or false otherwise.
bool lti::axOGDFeature::apply ( const channel src,
channel a0,
channel a1,
channel a2,
channel theta1,
channel theta2 
) const

Extracts the second order OGD coefficients for the given windows size and variance (if gaussian).

The "levels" parameter will be ignored, and only the first level will be calculated. This method is used by other feature extractors

To obtain the angle othogonal to the edges, you need to divide theta1 by 2. You can use a1 and theta1/2 for the lti::orientationFeature.

bool lti::axOGDFeature::apply ( const channel src,
channel a0,
channel a1,
channel theta1 
) const

Extracts the first order OGD coefficients for the given window size and variance (if gaussian).

The "levels" parameter will be ignored, and only the first level will be calculated. This method is used by other feature extractors.

To obtain the angle othogonal to the edges, you need to divide theta1 by 2. This can automatically be done if you specify it in the parameters. You can use a1 and theta1/2 for the lti::orientationFeature.

bool lti::axOGDFeature::apply ( const image src,
dvector dest 
) const [virtual]

Extract the OGD features from the red, green and blue components of the given image and concatenate the results.

Parameters:
src image with the source data.
dest the feature vector
Returns:
true if apply successful or false otherwise.

Reimplemented from lti::globalFeatureExtractor.

bool lti::axOGDFeature::apply ( const channel src,
dvector dest 
) const [virtual]

Extracts the OGD rotation invariant feature from the given gray valued image (a channel).

Parameters:
src channel with the source data.
dest the feature vector
Returns:
true if apply successful or false otherwise.

Reimplemented from lti::globalFeatureExtractor.

virtual bool lti::axOGDFeature::apply ( const point pos,
dvector dest 
) const [virtual]

Extract the local feature at the position pos and leave the result in the given vector.

It depends on the last used "use" member, if the feature vector is an "opponent-color" feature or a monochromatic feature.

Parameters:
pos the position at the given image.
dest the feature vector.
Returns:
true if sucessful, false otherwise
virtual functor* lti::axOGDFeature::clone (  )  const [virtual]

Returns a pointer to a clone of this functor.

Reimplemented from lti::globalFeatureExtractor.

axOGDFeature& lti::axOGDFeature::copy ( const axOGDFeature other  ) 

Copy data of "other" functor.

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

Reimplemented from lti::globalFeatureExtractor.

const parameters& lti::axOGDFeature::getParameters (  )  const

Returns used parameters.

Reimplemented from lti::globalFeatureExtractor.

virtual const char* lti::axOGDFeature::getTypeName (  )  const [virtual]

Returns the name of this type ("axOGDFeature").

Reimplemented from lti::globalFeatureExtractor.

virtual bool lti::axOGDFeature::use ( const channel center,
const channel surround 
) [virtual]

Indicates which channels to use in the local feature extraction.

Some precalculation will be done, and using the apply(const point&, dvector&) member, the feature vector of a specific position can be computed in a faster way.

After calling this method the corresponding opponent-color features will be extracted.

virtual bool lti::axOGDFeature::use ( const channel src  )  [virtual]

Indicates which channel to use in the local feature extraction.

Some precalculation will be done, and using the apply(const point&, dvector&) member, the feature vector of a specific position can be computed in a faster way.

After calling this method the corresponding monochromatic features will be extracted.


Member Data Documentation

The number of levels included in theChannels.

int lti::axOGDFeature::ogdOrder [protected]

The degree of the OGD used to extract the channels.

std::vector<channel> lti::axOGDFeature::theChannels [protected]

This channels contain the term a0-a2 and theta2.


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

Generated on Sat Apr 10 15:27:02 2010 for LTI-Lib by Doxygen 1.6.1