latest version v1.9 - last update 10 Apr 2010 |
oriented gaussian derivatives steerable filters More...
#include <ltiOgdFilter.h>
Classes | |
class | parameters |
the parameters for all ogd filters More... | |
Public Member Functions | |
ogdFilter () | |
ogdFilter (const parameters &par) | |
ogdFilter (const ogdFilter &other) | |
virtual | ~ogdFilter () |
virtual const char * | getTypeName () const |
bool | apply (channel &srcdest) const |
bool | apply (const channel &src, channel &dest) const |
bool | useBasisOgd1 (const channel &basis0, const channel &basis1, channel &dest, const double &angle=useAngleOfParameters) |
void | generateBasisOgd1 (const channel &src, channel &basis0, channel &basis1) |
channel & | useBasisOgd2 (const channel &basis0, const channel &basis1, const channel &basis2, channel &dest, const double &angle=useAngleOfParameters) |
void | generateBasisOgd2 (const channel &src, channel &basis0, channel &basis1, channel &basis2) |
ogdFilter & | copy (const ogdFilter &other) |
virtual functor * | clone () const |
const parameters & | getParameters () const |
oriented gaussian derivatives steerable filters
This functions make use of the ogd kernels (lti::ogd1Kernel and lti::ogd2Kernel).
If you need to calculate more than one image for different directions, use the generateBasis and useBasis members.
If you want to calculate just one image, use the apply members.
lti::ogdFilter::ogdFilter | ( | ) |
default constructor
lti::ogdFilter::ogdFilter | ( | const parameters & | par | ) |
default constructor with parameters
lti::ogdFilter::ogdFilter | ( | const ogdFilter & | other | ) |
copy constructor
other | the object to be copied |
virtual lti::ogdFilter::~ogdFilter | ( | ) | [virtual] |
destructor
operates on a copy of the given parameters.
Reimplemented from lti::modifier.
bool lti::ogdFilter::apply | ( | channel & | srcdest | ) | const [virtual] |
operates on the given parameter.
srcdest | channel with the source data. The result will be left here too. |
Reimplemented from lti::modifier.
virtual functor* lti::ogdFilter::clone | ( | ) | const [virtual] |
returns a pointer to a clone of this functor.
Implements lti::functor.
copy data of "other" functor.
other | the functor to be copied |
Reimplemented from lti::functor.
const parameters& lti::ogdFilter::getParameters | ( | ) | const |
returns used parameters
Reimplemented from lti::modifier.
virtual const char* lti::ogdFilter::getTypeName | ( | ) | const [virtual] |
returns the name of this type ("ogdFilter")
Reimplemented from lti::modifier.
bool lti::ogdFilter::useBasisOgd1 | ( | const channel & | basis0, | |
const channel & | basis1, | |||
channel & | dest, | |||
const double & | angle = useAngleOfParameters | |||
) |
first order ogd derivative combination.
If the basis channels are known (i.e. the original channel convolved with the two basis kernels), you can use this function to generate the oriented image in a very efficient manner. You can generate the basis channels with the generateBasisOGD1() member function or you can generate them by yourself using the lti::ogd1Kernel.
The interpolation functions are cosine for the basis0 and sinus for the basis1.
basis0 | the first basis channel | |
basis1 | the second basis channel | |
dest | the filtered image | |
angle | the used direction (in radians). this value must be between -2000 Pi and +2000 Pi. If not given, the angle member of the parameters will be used! |
channel& lti::ogdFilter::useBasisOgd2 | ( | const channel & | basis0, | |
const channel & | basis1, | |||
const channel & | basis2, | |||
channel & | dest, | |||
const double & | angle = useAngleOfParameters | |||
) |
second order ogd derivative combination
If the basis channels are known (i.e. the original channel convolved with the three basis kernels), you can use this function to generate the oriented image in a very efficient manner. You can generate the basis channels with the generateBasisOgd2() member function or you can generate them by yourself using the lti::ogd1Kernel.
The interpolation functions are cos^2 for the basis0, sin^2 for the basis1 and 2*cos*sin for the basis2.