latest version v1.9 - last update 10 Apr 2010 |
OGD based texture feature. More...
#include <ltiAxOGDFeature.h>
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 ¢er, 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 ¢er, 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 ¢er, const channel &surround, const std::list< location > &locs, std::list< dvector > &dest) |
axOGDFeature & | copy (const axOGDFeature &other) |
virtual functor * | clone () const |
const parameters & | getParameters () const |
Protected Attributes | |
std::vector< channel > | theChannels |
int | ogdOrder |
int | numLevels |
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.
lti::axOGDFeature::axOGDFeature | ( | ) |
Default constructor.
lti::axOGDFeature::axOGDFeature | ( | const axOGDFeature & | other | ) |
Copy constructor.
other | the object to be copied |
virtual lti::axOGDFeature::~axOGDFeature | ( | ) | [virtual] |
Destructor.
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.
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. |
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.
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. |
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.
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. |
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.
Extract the OGD features from the red, green and blue components of the given image and concatenate the results.
Reimplemented from lti::globalFeatureExtractor.
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.
other | the functor to be copied |
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.
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.
int lti::axOGDFeature::numLevels [protected] |
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.