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::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision > Class Template Reference

#include <itkInverseDeconvolutionImageFilter.h>

+ Inheritance diagram for itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >:
+ Collaboration diagram for itk::InverseDeconvolutionImageFilter< 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
InverseDeconvolutionImageFilter 
Self
typedef Superclass::SizeValueType SizeValueType
typedef
FFTConvolutionImageFilter
< TInputImage, TOutputImage > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
virtual void SetKernelZeroMagnitudeThreshold (double _arg)
virtual double GetKernelZeroMagnitudeThreshold () const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TInputImage::ImageDimension

Protected Member Functions

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

Private Member Functions

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

Private Attributes

double m_KernelZeroMagnitudeThreshold

Detailed Description

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

The direct linear inverse deconvolution filter.

The inverse filter is the most straightforward deconvolution method. Considering that convolution of two images in the spatial domain is equivalent to multiplying the Fourier transform of the two images, the inverse filter consists of inverting the multiplication. In other words, this filter computes the following:

\[ hat{F}(\omega) = \begin{cases} G(\omega) / H(\omega) & \text{if $|H(\omega)| \geq \epsilon$} \\ 0 & \text{otherwise} \end{cases} \]

where $\hat{F}(\omega)$ is the Fourier transform of the estimate produced by this filter, $G(\omega)$ is the Fourier transform of the input blurred image, $H(\omega)$ is the Fourier transform of the blurring kernel, and $\epsilon$ is a constant real non-negative threshold (called KernelZeroMagnitudeThreshold in this filter) that determines when the magnitude of a complex number is considered zero.

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 54 of file itkInverseDeconvolutionImageFilter.h.


Member Typedef Documentation

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

Constructor & Destructor Documentation

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

Definition at line 106 of file itkInverseDeconvolutionImageFilter.h.

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

Member Function Documentation

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

Reimplemented in itk::WienerDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >, and itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >.

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

Set/get the threshold value uused to determine whether a frequency of the Fourier transform of the blurring kernel is considered to be zero. Default value is 1.0e-4.

template<class TInputImage, class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
virtual const char* itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::GetNameOfClass ( ) const [virtual]
template<class TInputImage, class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
static Pointer itk::InverseDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >::New ( ) [static]
template<class TInputImage, class TKernelImage = TInputImage, class TOutputImage = TInputImage, class TInternalPrecision = double>
void itk::InverseDeconvolutionImageFilter< 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::FFTConvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

Reimplemented in itk::WienerDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >, and itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >.

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

Reimplemented in itk::WienerDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >, and itk::TikhonovDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage, TInternalPrecision >.

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

Set/get the threshold value uused to determine whether a frequency of the Fourier transform of the blurring kernel is considered to be zero. Default value is 1.0e-4.


Member Data Documentation

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

Definition at line 117 of file itkInverseDeconvolutionImageFilter.h.


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