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

lti::hessianFunctor::parameters Class Reference

The parameters for the class hessianFunctor. More...

#include <ltiHessianFunctor.h>

Inheritance diagram for lti::hessianFunctor::parameters:
Inheritance graph
[legend]
Collaboration diagram for lti::hessianFunctor::parameters:
Collaboration graph
[legend]

List of all members.

Public Types

enum  eKernelType {
  Ando , Prewitt, Harris, Robinson,
  Kirsch, OGD2, Hessian, Classic
}

Public Member Functions

 parameters ()
 parameters (const parameters &other)
 ~parameters ()
const char * getTypeName () const
parameterscopy (const parameters &other)
parametersoperator= (const parameters &other)
virtual functor::parametersclone () const
virtual bool write (ioHandler &handler, const bool complete=true) const
virtual bool read (ioHandler &handler, const bool complete=true)

Public Attributes

eKernelType kernelType
int kernelSize
float kernelVariance

Detailed Description

The parameters for the class hessianFunctor.


Member Enumeration Documentation

Possible types of kernels for the computation of the second derivative.

Enumerator:
Ando 

convolution of the appropriate optimal gradient kernels by Ando (see lti::andoKernelXX)

Prewitt 

convolution of Sobel kernels leads to 5x5 separable kernels (see lti::sobleKernelXX):

  • XX and YY: /code [ 1 0 -2 0 1] [ 1 4 6 4 1] /endcode
  • XY both: /code [ 1 2 0 -2 -1] /endcode
Harris 

convolution of Prewitt kernels leads to 5x5 separable kernels (see lti::prewittKernelXX):

  • XX and YY: /code [ 1 0 -2 0 1] [ 1 2 3 2 1] /endcode
  • XY both: /code [ 1 1 0 -1 -1] /endcode
Robinson 

Harris has 1D kernels of length nine for XX and YY and a separable 5x5 kernel for XY (see lti::harrisKernelXX):

  • XX and YY: /code [ 4 4 1 -4 -10 -4 1 4 4] [] /endcode
  • XY both: /code [-2 -1 0 1 2] /endcode.
Kirsch 

convolution of Robinson kernels leads to 5x5 NON-separable kernels (see lti::robinsonKernelXX):

  • XX and YY: /code +- -+ | 1 2 -1 -2 1 | | 2 -2 -8 2 2 | | 3 0 0 0 3 | | 2 -2 -8 2 2 | | 1 2 -1 -2 1 | +- -+ /endcode
  • XY: /code +- -+ | 1 2 1 0 -1 | | 2 -2 -4 0 -2 | | 1 -4 4 0 -1 | | 0 0 0 6 0 | | -1 -2 -1 0 -1 | +- -+ /endcode
OGD2 

convolution of Kirsch kernels leads to 5x5 NON-separable kernels (see lti::kirschKernelXX):

  • XX and YY: /code +- -+ | 9 18 -21 -30 25 | | 18 18 -51 -30 50 | | 27 36 -72 -60 75 | | 18 18 -51 -30 50 | | 9 18 -21 -30 25 | +- -+ /endcode
  • XY: /code +- -+ | 9 18 3 -6 -15 | | 18 18 -12 -6 -30 | | 3 -12 -8 4 -5 | | -6 -6 4 34 10 | | -15 -30 -5 10 25 | +- -+ /endcode
Hessian 

Oriented Gaussian Derivative Kernels order 2.

See lti::ogd2Kernel for description. Remember to set kernelSize and kernelVariance appropriately.

Classic 

Kernels developed by Pablo Alvarado.

See lti::hessianKernelXX for details. Classic kernels for second derivatives. Note that no actual kernels but a much faster manual implementation is used. The same is used for the XY direction of Hessian since the kernel is equal. Further, the 'same' kernels are obtained by convolution of lti::robertsKernelX and Y and a rotation of $\pi/4$. These are the kernels:

  • XX and YY are 1D: /code [1 -2 1] /endcode
  • XY is 3x3 separable: /code +- -+ | 1 0 -1 | | 0 0 0 | | -1 0 1 | +- -+ /endcode

Constructor & Destructor Documentation

lti::hessianFunctor::parameters::parameters (  ) 

Default constructor.

Reimplemented from lti::transform::parameters.

lti::hessianFunctor::parameters::parameters ( const parameters other  ) 

Copy constructor.

Parameters:
other the parameters object to be copied

Reimplemented from lti::transform::parameters.

lti::hessianFunctor::parameters::~parameters (  )  [virtual]

Destructor.

Reimplemented from lti::functor::parameters.


Member Function Documentation

virtual functor::parameters* lti::hessianFunctor::parameters::clone (  )  const [virtual]

Returns a pointer to a clone of the parameters.

Reimplemented from lti::transform::parameters.

parameters& lti::hessianFunctor::parameters::copy ( const parameters other  ) 

Copy the contents of a parameters object.

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

Reimplemented from lti::transform::parameters.

const char* lti::hessianFunctor::parameters::getTypeName (  )  const [virtual]

Returns name of this type.

Reimplemented from lti::transform::parameters.

parameters& lti::hessianFunctor::parameters::operator= ( const parameters other  ) 

Copy the contents of a parameters object.

Parameters:
other the parameters object to be copied
Returns:
a reference to this parameters object
virtual bool lti::hessianFunctor::parameters::read ( ioHandler handler,
const bool  complete = true 
) [virtual]

Read the parameters from the given ioHandler.

Parameters:
handler the ioHandler to be used
complete if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written.
Returns:
true if write was successful

Reimplemented from lti::functor::parameters.

virtual bool lti::hessianFunctor::parameters::write ( ioHandler handler,
const bool  complete = true 
) const [virtual]

Write the parameters in the given ioHandler.

Parameters:
handler the ioHandler to be used
complete if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written.
Returns:
true if write was successful

Reimplemented from lti::functor::parameters.


Member Data Documentation

This parameter sets the size of the kernel for:

Possible values are 5, 7, and 9.

Default: 5

Sets the kernel type used to calculate the second derivatives.

Most kernels can be found in ltiSecondDerivativeKernels.h

The variance for kernels that use the Gaussian.

Value -1 sets the variance appropriately for the given kernelSize. (see e.g. ogd2Kernels)

Default: -1


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

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