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

lti::ogd1Kernel< T > Class Template Reference

First order Oriented Gaussian Derivative. More...

#include <ltiOgdKernels.h>

Inheritance diagram for lti::ogd1Kernel< T >:
Inheritance graph
[legend]
Collaboration diagram for lti::ogd1Kernel< T >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ogd1Kernel ()
 ogd1Kernel (const int &size, const double &theVariance=1.4426950409, const double &theAngle=0.0)
void generate (const int &size, const double &theVariance, const double &theAngle)
void generateBasisKernel (const int &whichBasis, const int &size, const double &theVariance)

Detailed Description

template<class T>
class lti::ogd1Kernel< T >

First order Oriented Gaussian Derivative.

OGD kernels are separable (one filter pair per basis kernel)!

You can create a "real" 2D kernel with the following code

 lti::ogd1Kernel<float> ogd(5); // a kernel 5x5 with default variance
                                 // and angle
 lti::kernel2D<float>   kern;    // a 2D kernel;

 kern.outerProduct(ogd.getRowFilter(0),ogd.getColFilter(0));

The first basis filter of the first order OGD is:

$ b_0(x,y) = -g(x,y) \frac{x}{\sigma^2}$

and the second:

$ b_1(x,y) = -g(x,y) \frac{y}{\sigma^2}$

The used interpolation functions are $ \cos\theta$ and $ \sin\theta$.

If you need to calculate several channels with different directions, calculate first the basis images and then use lti::ogd1Filter to combine them. This way is faster as to convolve each time the channel with the separable kernel.


Constructor & Destructor Documentation

template<class T>
lti::ogd1Kernel< T >::ogd1Kernel (  ) 

Default constructor.

Creates an empty kernel. To initialize use generate() or generateBasisKernel().

template<class T>
lti::ogd1Kernel< T >::ogd1Kernel ( const int &  size,
const double &  theVariance = 1.4426950409,
const double &  theAngle = 0.0 
)

Constructor.

Parameters:
size is the dimension of the one dimensional part (i.e. the kernel has dimensions size x size !)
theVariance variance of the kernel
theAngle used angle (in radians)

Member Function Documentation

template<class T>
void lti::ogd1Kernel< T >::generate ( const int &  size,
const double &  theVariance,
const double &  theAngle 
)

Initialize this kernel with the specified values.

Parameters:
size is the dimension of the one dimensional part (i.e. the kernel has dimensions size x size !)
theVariance variance of the kernel
theAngle used angle (in radians)
template<class T>
void lti::ogd1Kernel< T >::generateBasisKernel ( const int &  whichBasis,
const int &  size,
const double &  theVariance 
)

Initialize this kernel with the specified values.

Parameters:
whichBasis the steerable filter basis (for ogd1 must be 0 or 1)
size is the dimension of the one dimensional part (i.e. the kernel has dimensions size x size !)
theVariance variance of the kernel

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