ITK  4.1.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision > Class Template Reference

#include <itkTikhonovDeconvolutionImageFilter.h>

+ Inheritance diagram for itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >:
+ Collaboration diagram for itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef TInputImage InputImageType
typedef Superclass::InputIndexType InputIndexType
typedef Superclass::InputPixelType InputPixelType
typedef Superclass::InputRegionType InputRegionType
typedef Superclass::InputSizeType InputSizeType
typedef
Superclass::InternalComplexImagePointerType 
InternalComplexImagePointerType
typedef
Superclass::InternalComplexImageType 
InternalComplexImageType
typedef
Superclass::InternalComplexType 
InternalComplexType
typedef
Superclass::InternalImagePointerType 
InternalImagePointerType
typedef
Superclass::InternalImageType 
InternalImageType
typedef TKernelImage KernelImageType
typedef Superclass::KernelIndexType KernelIndexType
typedef Superclass::KernelPixelType KernelPixelType
typedef
Superclass::KernelRegionType 
KernelRegionType
typedef Superclass::KernelSizeType KernelSizeType
typedef TOutputImage OutputImageType
typedef Superclass::OutputIndexType OutputIndexType
typedef Superclass::OutputPixelType OutputPixelType
typedef
Superclass::OutputRegionType 
OutputRegionType
typedef Superclass::OutputSizeType OutputSizeType
typedef SmartPointer< SelfPointer
typedef
TikhonovDeconvolutionImageFilter 
Self
typedef Superclass::SizeValueType SizeValueType
typedef
InverseDeconvolutionImageFilter
< TInputImage, TOutputImage > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual void SetRegularizationConstant (double _arg)
virtual double GetRegularizationConstant () const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TInputImage::ImageDimension

Protected Member Functions

void GenerateData ()
virtual void PrintSelf (std::ostream &os, Indent indent) const
 TikhonovDeconvolutionImageFilter ()
 ~TikhonovDeconvolutionImageFilter ()

Private Member Functions

void operator= (const Self &)
 TikhonovDeconvolutionImageFilter (const Self &)

Private Attributes

double m_RegularizationConstant

Detailed Description

template<class TInputImage, class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
class itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >

An inverse deconvolution filter regularized in the Tikhonov sense.

The Tikhonov deconvolution filter is the inverse deconvolution filter with a regularization term added to the denominator. The filter minimizes the equation

\[ ||\hat{f} \otimes h - g||_{L_2}^2 + \mu||\hat{f}||^2 \]

where $\hat{f}$ is the estimate of the unblurred image, $h$ is the blurring kernel, $g$ is the blurred image, and $\mu$ is a non-negative real regularization function.

The filter applies a kernel described in the Fourier domain as $H^*(\omega) / (|H(\omega)|^2 + \mu)$ where $H(\omega)$ is the Fourier transform of $h$. The term $\mu$ is called RegularizationConstant in this filter. If $\mu$ is set to zero, this filter is equivalent to the InverseDeconvolutionImageFilter.

Author:
Gaeten Lehmann, Biologie du Developpement et de la Reproduction, INRA de Jouy-en-Josas, France
Cory Quammen, The University of North Carolina at Chapel Hill

Definition at line 50 of file itkTikhonovDeconvolutionImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef SmartPointer< const Self > itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::ConstPointer
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef TInputImage itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InputImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InputIndexType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InputIndexType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InputPixelType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InputPixelType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InputRegionType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InputRegionType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InputSizeType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InputSizeType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InternalComplexImagePointerType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InternalComplexImagePointerType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InternalComplexImageType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InternalComplexImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InternalComplexType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InternalComplexType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InternalImagePointerType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InternalImagePointerType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::InternalImageType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::InternalImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef TKernelImage itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::KernelImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::KernelIndexType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::KernelIndexType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::KernelPixelType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::KernelPixelType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::KernelRegionType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::KernelRegionType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::KernelSizeType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::KernelSizeType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef TOutputImage itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::OutputImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::OutputIndexType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::OutputIndexType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::OutputPixelType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::OutputPixelType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::OutputRegionType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::OutputRegionType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::OutputSizeType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::OutputSizeType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef SmartPointer< Self > itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::Pointer
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef TikhonovDeconvolutionImageFilter itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::Self
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef Superclass::SizeValueType itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::SizeValueType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
typedef InverseDeconvolutionImageFilter< TInputImage, TOutputImage > itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::Superclass

Constructor & Destructor Documentation

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::TikhonovDeconvolutionImageFilter ( ) [protected]
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::~TikhonovDeconvolutionImageFilter ( ) [inline, protected]

Definition at line 103 of file itkTikhonovDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::TikhonovDeconvolutionImageFilter ( const Self ) [private]

Member Function Documentation

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
virtual::itk::LightObject::Pointer itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
void itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::GenerateData ( ) [protected, virtual]

This filter uses a minipipeline to compute the output.

Reimplemented from itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
virtual const char* itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::GetNameOfClass ( ) const [virtual]

Run-time type information ( and related methods )

Reimplemented from itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
virtual double itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::GetRegularizationConstant ( ) const [virtual]

The regularization factor. Larger values reduce the dominance of noise in the solution, but results in higher approximation error in the deblurred image. Default value is 0.0, yielding the same results as the InverseDeconvolutionImageFilter.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
static Pointer itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
void itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::operator= ( const Self ) [private]

PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.

Reimplemented from itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
virtual void itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::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::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
virtual void itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::SetRegularizationConstant ( double  _arg) [virtual]

The regularization factor. Larger values reduce the dominance of noise in the solution, but results in higher approximation error in the deblurred image. Default value is 0.0, yielding the same results as the InverseDeconvolutionImageFilter.


Member Data Documentation

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
const unsigned int itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::ImageDimension = TInputImage::ImageDimension [static]

Dimensionality of input and output data is assumed to be the same.

Reimplemented from itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

Definition at line 67 of file itkTikhonovDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
double itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::m_RegularizationConstant [private]

Definition at line 114 of file itkTikhonovDeconvolutionImageFilter.h.


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