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

lti::ogdFilter Class Reference

oriented gaussian derivatives steerable filters More...

#include <ltiOgdFilter.h>

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

List of all members.

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)
channeluseBasisOgd2 (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)
ogdFiltercopy (const ogdFilter &other)
virtual functorclone () const
const parametersgetParameters () const

Detailed Description

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.


Constructor & Destructor Documentation

lti::ogdFilter::ogdFilter (  ) 

default constructor

lti::ogdFilter::ogdFilter ( const parameters par  ) 

default constructor with parameters

lti::ogdFilter::ogdFilter ( const ogdFilter other  ) 

copy constructor

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

destructor


Member Function Documentation

bool lti::ogdFilter::apply ( const channel src,
channel dest 
) const [virtual]

operates on a copy of the given parameters.

Parameters:
src channel with the source data.
dest channel where the result will be left.
Returns:
true if ok, false otherwise.

Reimplemented from lti::modifier.

bool lti::ogdFilter::apply ( channel srcdest  )  const [virtual]

operates on the given parameter.

Parameters:
srcdest channel with the source data. The result will be left here too.
Returns:
true if ok, false otherwise.

Reimplemented from lti::modifier.

virtual functor* lti::ogdFilter::clone (  )  const [virtual]

returns a pointer to a clone of this functor.

Implements lti::functor.

ogdFilter& lti::ogdFilter::copy ( const ogdFilter other  ) 

copy data of "other" functor.

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

Reimplemented from lti::functor.

void lti::ogdFilter::generateBasisOgd1 ( const channel src,
channel basis0,
channel basis1 
)

generate the basis channels of the first order OGD

Parameters:
src the source channel
basis0 the source channel convolved with the first basis kernel
basis1 the source channel convolved with the second basis kernel.
void lti::ogdFilter::generateBasisOgd2 ( const channel src,
channel basis0,
channel basis1,
channel basis2 
)

generate the basis channels of the second order Ogd

Parameters:
src the source channel
basis0 the source channel convolved with the first basis kernel
basis1 the source channel convolved with the second basis kernel.
basis2 the source channel convolved with the third basis kernel.
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.

Parameters:
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!
Returns:
true if ok, false otherwise.
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.

Parameters:
basis0 the first basis channel
basis1 the second basis channel
basis2 the third basis channel
dest the filtered image
angle the direction to be used

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

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