Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage > Class Template Reference
[Image Enhancement FiltersSinglethreaded Filters]

Base class for computing IIR convolution with an approximation of a Gaussian kernel. More...

#include <itkRecursiveGaussianImageFilter.h>

Inheritance diagram for itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >:

Inheritance graph
[legend]
Collaboration diagram for itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef RecursiveGaussianImageFilter Self
typedef RecursiveSeparableImageFilter<
TInputImage, TOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::RealType RealType
typedef Superclass::ScalarRealType ScalarRealType
typedef TOutputImage OutputImageType
enum  OrderEnumType { ZeroOrder, FirstOrder, SecondOrder }

Public Member Functions

virtual const char * GetNameOfClass () const
virtual void SetNormalizeAcrossScale (bool _arg)
virtual bool GetNormalizeAcrossScale ()
void SetZeroOrder ()
void SetFirstOrder ()
void SetSecondOrder ()
virtual ScalarRealType GetSigma ()
virtual void SetSigma (ScalarRealType _arg)
virtual void SetOrder (OrderEnumType _arg)
virtual OrderEnumType GetOrder ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

 RecursiveGaussianImageFilter ()
virtual ~RecursiveGaussianImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual void SetUp (ScalarRealType spacing)

Detailed Description

template<typename TInputImage, typename TOutputImage = TInputImage>
class itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >

Base class for computing IIR convolution with an approximation of a Gaussian kernel.

\[ \frac{ 1 }{ \sigma \sqrt{ 2 \pi } } \exp{ \left( - \frac{x^2}{ 2 \sigma^2 } \right) } \]

RecursiveGaussianImageFilter is the base class for recursive filters that approximate convolution with the Gaussian kernel. This class implements the recursive filtering method proposed by R.Deriche in IEEE-PAMI Vol.12, No.1, January 1990, pp 78-87, "Fast Algorithms for Low-Level Vision"

Details of the implementation are described in the technical report: R. Deriche, "Recursively Implementing The Gaussian and Its Derivatives", INRIA, 1993, ftp://ftp.inria.fr/INRIA/tech-reports/RR/RR-1893.ps.gz

Further improvements of the algorithm are described in: G. Farneback & C.-F. Westin, "On Implementation of Recursive Gaussian Filters", so far unpublished.

As compared to itk::DiscreteGaussianImageFilter, this filter tends to be faster for large kernels, and it can take the derivative of the blurred image in one step. Also, note that we have itk::RecursiveGaussianImageFilter::SetSigma(), but itk::DiscreteGaussianImageFilter::SetVariance().

Definition at line 56 of file itkRecursiveGaussianImageFilter.h.


Member Typedef Documentation

template<typename TInputImage, typename TOutputImage = TInputImage>
typedef SmartPointer<const Self> itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::ConstPointer
 

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

Definition at line 64 of file itkRecursiveGaussianImageFilter.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
typedef TOutputImage itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::OutputImageType
 

Type of the output image

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

Definition at line 87 of file itkRecursiveGaussianImageFilter.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
typedef SmartPointer<Self> itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::Pointer
 

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

Definition at line 63 of file itkRecursiveGaussianImageFilter.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
typedef Superclass::RealType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::RealType
 

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

Definition at line 66 of file itkRecursiveGaussianImageFilter.h.

template<typename TInputImage, typename TOutputImage = TInputImage>
typedef Superclass::ScalarRealType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::ScalarRealType
 

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

Definition at line 67 of file itkRecursiveGaussianImageFilter.h.

Referenced by itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::~RecursiveGaussianImageFilter().

template<typename TInputImage, typename TOutputImage = TInputImage>
typedef RecursiveGaussianImageFilter itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::Self
 

Standard class typedefs.

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

Definition at line 61 of file itkRecursiveGaussianImageFilter.h.

Referenced by itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::~RecursiveGaussianImageFilter().

template<typename TInputImage, typename TOutputImage = TInputImage>
typedef RecursiveSeparableImageFilter<TInputImage,TOutputImage> itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::Superclass
 

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

Definition at line 62 of file itkRecursiveGaussianImageFilter.h.


Member Enumeration Documentation

template<typename TInputImage, typename TOutputImage = TInputImage>
enum itk::RecursiveGaussianImageFilter::OrderEnumType
 

Enum type that indicates if the filter applies the equivalent operation of convolving with a gaussian, first derivative of a gaussian or the second derivative of a gaussian.

Enumeration values:
ZeroOrder 
FirstOrder 
SecondOrder 

Definition at line 84 of file itkRecursiveGaussianImageFilter.h.


Constructor & Destructor Documentation

template<typename TInputImage, typename TOutputImage = TInputImage>
itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::RecursiveGaussianImageFilter  )  [protected]
 

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::~RecursiveGaussianImageFilter  )  [inline, protected, virtual]
 

Definition at line 130 of file itkRecursiveGaussianImageFilter.h.

References itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::ScalarRealType, and itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::Self.


Member Function Documentation

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual const char* itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::GetNameOfClass  )  const [virtual]
 

Type macro that defines a name for this class

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual bool itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::GetNormalizeAcrossScale  )  [virtual]
 

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual OrderEnumType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::GetOrder  )  [virtual]
 

Set/Get the Order of the Gaussian to convolve with.

  • ZeroOrder is equivalent to convolving with a Gaussian. This is the default.
  • FirstOrder is equivalent to convolving with the first derivative of a Gaussian.
  • SecondOrder is equivalent to convolving with the second derivative of a Gaussian.

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual ScalarRealType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::GetSigma  )  [virtual]
 

Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel. The default is 1.0.

template<typename TInputImage, typename TOutputImage = TInputImage>
Pointer itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

template<typename TInputImage, typename TOutputImage = TInputImage>
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::PrintSelf std::ostream &  os,
Indent  indent
const [protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

template<typename TInputImage, typename TOutputImage = TInputImage>
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetFirstOrder  ) 
 

Explicitly set a first order derivative.

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetNormalizeAcrossScale bool  _arg  )  [virtual]
 

Set/Get the flag for normalizing the gaussian over scale space. When this flag is ON the filter will be normalized in such a way that larger sigmas will not result in the image fading away.

\[ \frac{ 1 }{ \sqrt{ 2 \pi } }; \]

When the flag is OFF the normalization will conserve contant the integral of the image intensity.

\[ \frac{ 1 }{ \sigma \sqrt{ 2 \pi } }; \]

For analyzing an image across Scale Space you want to enable this flag. It is disabled by default.

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetOrder OrderEnumType  _arg  )  [virtual]
 

Set/Get the Order of the Gaussian to convolve with.

  • ZeroOrder is equivalent to convolving with a Gaussian. This is the default.
  • FirstOrder is equivalent to convolving with the first derivative of a Gaussian.
  • SecondOrder is equivalent to convolving with the second derivative of a Gaussian.

template<typename TInputImage, typename TOutputImage = TInputImage>
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetSecondOrder  ) 
 

Explicitly set a second order derivative.

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetSigma ScalarRealType  _arg  )  [virtual]
 

Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel. The default is 1.0.

template<typename TInputImage, typename TOutputImage = TInputImage>
virtual void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetUp ScalarRealType  spacing  )  [protected, virtual]
 

Set up the coefficients of the filter to approximate a specific kernel. Here it is used to approximate a Gaussian or one of its derivatives. Parameter is the spacing along the dimension to filter.

Implements itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.

template<typename TInputImage, typename TOutputImage = TInputImage>
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetZeroOrder  ) 
 

Explicitly set a zeroth order derivative.


The documentation for this class was generated from the following file:
Generated at Thu May 25 02:10:09 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000