latest version v1.9 - last update 10 Apr 2010 |
This functor create huge lists of local features, that can be used to train the multidimensional receptive field histograms of Schiele and Crowley (see lti::shClassifier). More...
#include <ltiSchieleCrowley6DFeature.h>
Classes | |
class | parameters |
the parameters for the class schieleCrowley6DFeature More... | |
Public Member Functions | |
schieleCrowley6DFeature () | |
schieleCrowley6DFeature (const schieleCrowley6DFeature &other) | |
virtual | ~schieleCrowley6DFeature () |
virtual const char * | getTypeName () const |
schieleCrowley6DFeature & | copy (const schieleCrowley6DFeature &other) |
schieleCrowley6DFeature & | operator= (const schieleCrowley6DFeature &other) |
virtual functor * | clone () const |
const parameters & | getParameters () const |
slow apply methods | |
bool | apply (const channel &src, const channel8 &mask, std::list< dvector > &vcts) const |
bool | apply (const channel &src, const areaPoints &mask, std::list< dvector > &vcts) const |
bool | apply (const channel &src, const std::list< location > &mask, std::list< dvector > &vcts) const |
bool | apply (const channel &src, const double angle, const channel8 &mask, std::list< dvector > &vcts) const |
bool | apply (const channel &src, const double angle, const areaPoints &mask, std::list< dvector > &vcts) const |
bool | apply (const channel &src, const double angle, const std::list< location > &mask, std::list< dvector > &vcts) const |
fast apply methods. | |
All these apply methods use the internal computed gaussian derivatives. Before calling these methods you need therefore to specify your channel with the method use(). This approach is very fast when extracting different feature sets for the same image (for example, feature sets for each object in the image) In this case you specify once with use() which channel you want to use, and after that, you can call the apply method for each object found in the image. This way, the expensive filters will be applied just one, and the feature extraction is faster. | |
bool | use (const channel &chnl) |
bool | apply (const channel8 &mask, std::list< dvector > &vcts) const |
bool | apply (const areaPoints &mask, std::list< dvector > &vcts) const |
bool | apply (const std::list< location > &mask, std::list< dvector > &vcts) const |
bool | apply (const double angle, const channel8 &mask, std::list< dvector > &vcts) const |
bool | apply (const double angle, const areaPoints &mask, std::list< dvector > &vcts) const |
bool | apply (const double angle, const std::list< location > &mask, std::list< dvector > &vcts) const |
Protected Member Functions | |
void | getBasisChannels (const channel &chnl, const double sigma, channel &Dx, channel &Dy) const |
Protected Attributes | |
channel * | chnls |
This functor create huge lists of local features, that can be used to train the multidimensional receptive field histograms of Schiele and Crowley (see lti::shClassifier).
Each vector will be usually 6 dimensional, where the even dimensions will correspond to the pixel values of gaussian derivatives in x-direction and the odd dimensions will correspond to the y-direction.
Each pair of dimensions will correspond to one resolution or scale, where the std. deviation of the gaussians between the levels will be related by a factor 2.
More information on the features and classification approach can be taken from the original paper:
B. Schiele and J. Crowley. Recognition without correspondence using multidimensional receptive field histograms. Technical Report No. 453 MIT Medial Laboratory, Perceptial Computing Section.
lti::schieleCrowley6DFeature::schieleCrowley6DFeature | ( | ) |
default constructor
lti::schieleCrowley6DFeature::schieleCrowley6DFeature | ( | const schieleCrowley6DFeature & | other | ) |
copy constructor
other | the object to be copied |
virtual lti::schieleCrowley6DFeature::~schieleCrowley6DFeature | ( | ) | [virtual] |
destructor
bool lti::schieleCrowley6DFeature::apply | ( | const double | angle, | |
const std::list< location > & | mask, | |||
std::list< dvector > & | vcts | |||
) | const |
Before calling this method, you need to specify your channel with use(const channel&).
angle | reorient the gaussian derivatives with this angle | |
mask | only the central pixels of the locations will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const double | angle, | |
const areaPoints & | mask, | |||
std::list< dvector > & | vcts | |||
) | const |
Before calling this method, you need to specify your channel with use(const channel&).
angle | reorient the gaussian derivatives with this angle | |
mask | only the pixels in the mask (areaPoints list) will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const double | angle, | |
const channel8 & | mask, | |||
std::list< dvector > & | vcts | |||
) | const |
Before calling this method, you need to specify your channel with use(const channel&).
angle | reorient the gaussian derivatives with this angle | |
mask | only the pixels in src, for which the respective pixel in the mask is different than zero will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const std::list< location > & | mask, | |
std::list< dvector > & | vcts | |||
) | const |
Before calling this method, you need to specify your channel with use(const channel&).
mask | only the central pixels in the locations will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const areaPoints & | mask, | |
std::list< dvector > & | vcts | |||
) | const |
Before calling this method, you need to specify your channel with use(const channel&).
mask | only the pixels in the mask (areaPoints list) will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const channel8 & | mask, | |
std::list< dvector > & | vcts | |||
) | const |
Before calling this method, you need to specify your channel with use(const channel&).
mask | only the pixels in src, for which the respective pixel in the mask is different than zero will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const channel & | src, | |
const double | angle, | |||
const std::list< location > & | mask, | |||
std::list< dvector > & | vcts | |||
) | const |
Get a vector for each location in the locations list.
src | original channel with the source data | |
angle | reorient the gaussian derivatives with this angle | |
mask | only the central pixels of the locations will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const channel & | src, | |
const double | angle, | |||
const areaPoints & | mask, | |||
std::list< dvector > & | vcts | |||
) | const |
Get a vector for each pixel in the areaPoint.
src | original channel with the source data | |
angle | reorient the gaussian derivatives with this angle | |
mask | only the pixels in the mask (areaPoints list) will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const channel & | src, | |
const double | angle, | |||
const channel8 & | mask, | |||
std::list< dvector > & | vcts | |||
) | const |
Get a vector for each non-zero pixel in the mask.
src | original channel with the source data | |
angle | reorient the gaussian derivatives with this angle | |
mask | only the pixels in src, for which the respective pixel in the mask is different than zero will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const channel & | src, | |
const std::list< location > & | mask, | |||
std::list< dvector > & | vcts | |||
) | const [virtual] |
Get a vector for each location in the locations list.
src | original channel with the source data | |
mask | only the central pixels in the locations will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
Reimplemented from lti::localFeatureExtractor.
bool lti::schieleCrowley6DFeature::apply | ( | const channel & | src, | |
const areaPoints & | mask, | |||
std::list< dvector > & | vcts | |||
) | const |
Get a vector for all pixels in the area points.
src | original channel with the source data | |
mask | only the pixels in the mask (areaPoints list) will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
bool lti::schieleCrowley6DFeature::apply | ( | const channel & | src, | |
const channel8 & | mask, | |||
std::list< dvector > & | vcts | |||
) | const |
Get a vector for all non-zero pixels in the mask, using the gaussian derivatives of the given channel.
src | original channel with the source data | |
mask | only the pixels in src, for which the respective pixel in the mask is different than zero will be considered. | |
vcts | the list of all feature vectors for all masked pixels |
virtual functor* lti::schieleCrowley6DFeature::clone | ( | ) | const [virtual] |
returns a pointer to a clone of this functor.
Reimplemented from lti::globalFeatureExtractor.
schieleCrowley6DFeature& lti::schieleCrowley6DFeature::copy | ( | const schieleCrowley6DFeature & | other | ) |
copy data of "other" functor.
other | the functor to be copied |
Reimplemented from lti::globalFeatureExtractor.
const parameters& lti::schieleCrowley6DFeature::getParameters | ( | ) | const |
returns used parameters
Reimplemented from lti::globalFeatureExtractor.
virtual const char* lti::schieleCrowley6DFeature::getTypeName | ( | ) | const [virtual] |
returns the name of this type ("schieleCrowley6DFeature")
Reimplemented from lti::globalFeatureExtractor.
schieleCrowley6DFeature& lti::schieleCrowley6DFeature::operator= | ( | const schieleCrowley6DFeature & | other | ) |
alias for copy member
other | the functor to be copied |
Reimplemented from lti::localFeatureExtractor.
bool lti::schieleCrowley6DFeature::use | ( | const channel & | chnl | ) |
channel* lti::schieleCrowley6DFeature::chnls [protected] |
the set of channels internally used.