latest version v1.9 - last update 10 Apr 2010 |
GaborPyramid class. More...
#include <ltiGaborPyramid.h>
Public Member Functions | |
gaborPyramid (const int &resolutions=0, const double &orientation=0, const int &gaborSize=5, const double &bandwidth=0.69813170, const bool &upsampleWithGaussian=true) | |
gaborPyramid (const gaborPyramid &other) | |
virtual | ~gaborPyramid () |
void | getKernelParameters (double &orientation, int &size, double &bandwidth, bool &upsampleWithGaussian) const |
void | setKernelParameters (const double &orientation, const int &gaborSize=5, const double &bandwidth=0.69813170, const bool &upsampleWithGaussian=true) |
const char * | getTypeName () const |
gaborPyramid< T > & | copy (const gaborPyramid< T > &other) |
virtual mathObject * | clone () const |
void | generate (const T &src) |
void | generate (const T &src, const int &theResolutions) |
void | generate (const T &src, const lti::point &limit) |
Protected Attributes | |
double | kernelOrientation |
double | kernelBandwidth |
GaborPyramid class.
This class implements a dyadic gabor pyramid, which is obtained from the original channel, and its gaussian pyramid, where each scale is also filtered with a gabor kernel.
Each element of the pyramid will be obtained with the same filter-orientation.
See method generate() to an detailed explanation
lti::gaborPyramid< T >::gaborPyramid | ( | const int & | resolutions = 0 , |
|
const double & | orientation = 0 , |
|||
const int & | gaborSize = 5 , |
|||
const double & | bandwidth = 0.69813170 , |
|||
const bool & | upsampleWithGaussian = true | |||
) |
create a gabor pyramid with the given number of resolutions
resolutions | the number of resolutions that the pyramid can hold (default 0: an empty pyramid will be created) | |
orientation | the angle (in radians) of the gabor kernel (default 0) | |
gaborSize | the size of the gabor kernel (default 5) | |
bandwidth | the angular bandwidth in radians. The default value is 0.69813170 (40°), which maximizes coverage of the frequency domain while minimizing overlap between filters. | |
upsampleWithGaussian | if false a rectangular kernel will be used to reconstruct the scales, otherwise a gaussian kernel will be used (default true) |
lti::gaborPyramid< T >::gaborPyramid | ( | const gaborPyramid< T > & | other | ) |
create this gaborPyramid as a copy of another gaborPyramid
other | the gaborPyramid to be copied. |
virtual lti::gaborPyramid< T >::~gaborPyramid | ( | ) | [virtual] |
destructor
virtual mathObject* lti::gaborPyramid< T >::clone | ( | ) | const [virtual] |
create a clone of this gaborPyramid
Reimplemented from lti::gaussianPyramid< T >.
gaborPyramid<T>& lti::gaborPyramid< T >::copy | ( | const gaborPyramid< T > & | other | ) |
assigment operator.
copy the contents of other
in this object.
other | the source gaborPyramid to be copied. |
Reimplemented from lti::gaussianPyramid< T >.
void lti::gaborPyramid< T >::generate | ( | const T & | src, | |
const lti::point & | limit | |||
) |
generate the gabor pyramid of the given object.
Proceed, until given limit.x or limit.y is reached. smallest resolution will be > limit.
The resolution "0" corresponds to the original channel, and the resolution i+1 is always a factor 2 smaller than the resolution i.
Reimplemented from lti::gaussianPyramid< T >.
void lti::gaborPyramid< T >::generate | ( | const T & | src, | |
const int & | theResolutions | |||
) |
generate the gabor pyramid of the given object.
The pyramid will contain the number of resolutions specified by theResolutions. The resolution "0" will correspond the the original channel, and the resolution i+1 is always a factor 2 smaller than the resolution i.
Reimplemented from lti::gaussianPyramid< T >.
void lti::gaborPyramid< T >::generate | ( | const T & | src | ) |
generate the gabor pyramid of the given object.
The pyramid will contain the number of resolutions specified in the construction or in the resize() method. The resolution "0" will correspond the the original channel, and the resolution i+1 is always a factor 2 smaller than the resolution i.
Reimplemented from lti::gaussianPyramid< T >.
void lti::gaborPyramid< T >::getKernelParameters | ( | double & | orientation, | |
int & | size, | |||
double & | bandwidth, | |||
bool & | upsampleWithGaussian | |||
) | const |
return the size, variance and orientation of the used gabor kernel
const char* lti::gaborPyramid< T >::getTypeName | ( | void | ) | const [inline, virtual] |
returns the name of this class: "gaborPyramid"
Reimplemented from lti::gaussianPyramid< T >.
void lti::gaborPyramid< T >::setKernelParameters | ( | const double & | orientation, | |
const int & | gaborSize = 5 , |
|||
const double & | bandwidth = 0.69813170 , |
|||
const bool & | upsampleWithGaussian = true | |||
) |
set the kernel parameters
orientation | the angle (in radians) of the gabor kernel. | |
gaborSize | the size of the gabor kernel (default 5) | |
bandwidth | the angular bandwidth in radians. The default value is 0.69813170 (40°), which maximizes coverage of the frequency domain while minimizing overlap between filters. | |
upsampleWithGaussian | if false a rectangular kernel will be used to reconstruct the scales, otherwise a gaussian kernel will be used (default true) |
double lti::gaborPyramid< T >::kernelBandwidth [protected] |
kernel variance
double lti::gaborPyramid< T >::kernelOrientation [protected] |
kernel orientation in radians