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

lti::schieleCrowley6DFeature Class Reference

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>

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

List of all members.

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
schieleCrowley6DFeaturecopy (const schieleCrowley6DFeature &other)
schieleCrowley6DFeatureoperator= (const schieleCrowley6DFeature &other)
virtual functorclone () const
const parametersgetParameters () const
slow apply methods

Use these methods only when you need the src channel once.

To extract feature for different regions of the same src channel, see for example apply(channel8&,std::list<dvector>&)



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

channelchnls

Detailed Description

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.


Constructor & Destructor Documentation

lti::schieleCrowley6DFeature::schieleCrowley6DFeature (  ) 

default constructor

lti::schieleCrowley6DFeature::schieleCrowley6DFeature ( const schieleCrowley6DFeature other  ) 

copy constructor

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

destructor


Member Function Documentation

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&).

Parameters:
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
Returns:
true if apply successful or false otherwise.
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&).

Parameters:
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
Returns:
true if apply successful or false otherwise.
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&).

Parameters:
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
Returns:
true if apply successful or false otherwise.
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&).

Parameters:
mask only the central pixels in the locations will be considered.
vcts the list of all feature vectors for all masked pixels
Returns:
true if apply successful or false otherwise.
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&).

Parameters:
mask only the pixels in the mask (areaPoints list) will be considered.
vcts the list of all feature vectors for all masked pixels
Returns:
true if apply successful or false otherwise.
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&).

Parameters:
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
Returns:
true if apply successful or false otherwise.
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.

Parameters:
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
Returns:
true if apply successful or false otherwise.
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.

Parameters:
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
Returns:
true if apply successful or false otherwise.
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.

Parameters:
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
Returns:
true if apply successful or false otherwise.
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.

Parameters:
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
Returns:
true if apply successful or false otherwise.

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.

Parameters:
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
Returns:
true if apply successful or false otherwise.
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.

Parameters:
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
Returns:
true if apply successful or false otherwise.
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.

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

Reimplemented from lti::globalFeatureExtractor.

void lti::schieleCrowley6DFeature::getBasisChannels ( const channel chnl,
const double  sigma,
channel Dx,
channel Dy 
) const [protected]

get the basis channels for the channel chnl, assuming a gaussian with std.

deviation sigma.

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

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

Reimplemented from lti::localFeatureExtractor.

bool lti::schieleCrowley6DFeature::use ( const channel chnl  ) 

indicates the channel to be used.

This will allow a pre-computation of the gaussian derivatives, that allow a faster analysis of image regions.


Member Data Documentation

the set of channels internally used.


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

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