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

#include <itkRichardsonLucyDeconvolutionImageFilter.h>

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

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef TInputImage InputImageType
typedef
Superclass::InternalComplexImagePointerType 
InternalComplexImagePointerType
typedef
Superclass::InternalComplexImageType 
InternalComplexImageType
typedef
Superclass::InternalComplexType 
InternalComplexType
typedef
Superclass::InternalImagePointerType 
InternalImagePointerType
typedef
Superclass::InternalImageType 
InternalImageType
typedef TKernelImage KernelImageType
typedef TOutputImage OutputImageType
typedef SmartPointer< SelfPointer
typedef
RichardsonLucyDeconvolutionImageFilter 
Self
typedef
IterativeDeconvolutionImageFilter
< TInputImage, TKernelImage,
TOutputImage > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const

Static Public Member Functions

static Pointer New ()

Protected Types

typedef Superclass::FFTFilterType FFTFilterType
typedef Superclass::IFFTFilterType IFFTFilterType

Protected Member Functions

virtual void Finish (ProgressAccumulator *progress, float progressWeight)
virtual void Initialize (ProgressAccumulator *progress, float progressWeight, float iterationProgressWeight)
virtual void Iteration (ProgressAccumulator *progress, float iterationProgressWeight)
virtual void PrintSelf (std::ostream &os, Indent indent) const
 RichardsonLucyDeconvolutionImageFilter ()
virtual ~RichardsonLucyDeconvolutionImageFilter ()

Private Types

typedef MultiplyImageFilter
< InternalComplexImageType,
ConjugateAdaptorType,
InternalComplexImageType
ComplexConjugateMultiplyType
typedef MultiplyImageFilter
< InternalComplexImageType
ComplexMultiplyType
typedef
ComplexConjugateImageAdaptor
< InternalComplexImageType
ConjugateAdaptorType
typedef
DivideOrZeroOutImageFilter
< InternalImageType
DivideFilterType
typedef MultiplyImageFilter
< InternalImageType
MultiplyFilterType

Private Member Functions

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

Private Attributes

ComplexMultiplyType::Pointer m_ComplexMultiplyFilter1
ComplexConjugateMultiplyType::Pointer m_ComplexMultiplyFilter2
ConjugateAdaptorType::Pointer m_ConjugateAdaptor
DivideFilterType::Pointer m_DivideFilter
FFTFilterType::Pointer m_FFTFilter
IFFTFilterType::Pointer m_IFFTFilter1
IFFTFilterType::Pointer m_IFFTFilter2
MultiplyFilterType::Pointer m_MultiplyFilter
InternalImagePointerType m_PaddedInput

Detailed Description

template<class TInputImage, class TKernelImage = TInputImage, class TOutputImage = TInputImage>
class itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >

Deconvolve an image using the Richardson-Lucy deconvolution algorithm.

This filter implements the Richardson-Lucy deconvolution algorithm as defined in Bertero M and Boccacci P, "Introduction to Inverse Problems in Imaging", 1998. The algorithm assumes that the input image has been formed by a linear shift-invariant system with a known kernel.

The Richardson-Lucy algorithm assumes that noise in the image follows a Poisson distribution and that the distribution for each pixel is independent of the other pixels.

This code was adapted from the Insight Journal contribution:

"Deconvolution: infrastructure and reference algorithms" by Gaetan Lehmann http://hdl.handle.net/10380/3207

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
See also:
IterativeDeconvolutionImageFilter
LandweberDeconvolutionImageFilter
ProjectedLandweberDeconvolutionImageFilter

Definition at line 59 of file itkRichardsonLucyDeconvolutionImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef MultiplyImageFilter< InternalComplexImageType, ConjugateAdaptorType, InternalComplexImageType > itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::ComplexConjugateMultiplyType [private]

Definition at line 119 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef MultiplyImageFilter< InternalComplexImageType > itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::ComplexMultiplyType [private]

Definition at line 114 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef ComplexConjugateImageAdaptor< InternalComplexImageType > itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::ConjugateAdaptorType [private]

Definition at line 116 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef SmartPointer< const Self > itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::ConstPointer
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef DivideOrZeroOutImageFilter< InternalImageType > itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::DivideFilterType [private]

Definition at line 115 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef Superclass::FFTFilterType itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::FFTFilterType [protected]

Because the inputs are real, we can use the specialized filters for real-to-complex Fourier transforms.

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

Definition at line 103 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef Superclass::IFFTFilterType itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::IFFTFilterType [protected]
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef TInputImage itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::InputImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef Superclass::InternalComplexImagePointerType itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::InternalComplexImagePointerType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef Superclass::InternalComplexImageType itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::InternalComplexImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef Superclass::InternalComplexType itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::InternalComplexType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef Superclass::InternalImagePointerType itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::InternalImagePointerType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef Superclass::InternalImageType itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::InternalImageType

Internal types used by the FFT filters.

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

Definition at line 77 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef TKernelImage itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::KernelImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef MultiplyImageFilter< InternalImageType > itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::MultiplyFilterType [private]

Filters to compute each iterative update step.

Definition at line 113 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef TOutputImage itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::OutputImageType
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef SmartPointer< Self > itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::Pointer
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef RichardsonLucyDeconvolutionImageFilter itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::Self
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
typedef IterativeDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage > itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::Superclass

Constructor & Destructor Documentation

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::RichardsonLucyDeconvolutionImageFilter ( ) [protected]
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
virtual itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::~RichardsonLucyDeconvolutionImageFilter ( ) [protected, virtual]
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::RichardsonLucyDeconvolutionImageFilter ( const Self ) [private]

Member Function Documentation

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

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
virtual void itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::Finish ( ProgressAccumulator progress,
float  progressWeight 
) [protected, virtual]
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
virtual const char* itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::GetNameOfClass ( ) const [virtual]
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
virtual void itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::Initialize ( ProgressAccumulator progress,
float  progressWeight,
float  iterationProgressWeight 
) [protected, virtual]
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
virtual void itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::Iteration ( ProgressAccumulator ,
float   
) [protected, virtual]
template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
static Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::New ( ) [static]

Method for creation through the object factory.

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

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
void itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::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::IterativeDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
virtual void itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, 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::IterativeDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >.


Member Data Documentation

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
ComplexMultiplyType::Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_ComplexMultiplyFilter1 [private]

Definition at line 123 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
ComplexConjugateMultiplyType::Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_ComplexMultiplyFilter2 [private]

Definition at line 128 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
ConjugateAdaptorType::Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_ConjugateAdaptor [private]

Definition at line 127 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
DivideFilterType::Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_DivideFilter [private]

Definition at line 125 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
FFTFilterType::Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_FFTFilter [private]

Definition at line 126 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
IFFTFilterType::Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_IFFTFilter1 [private]

Definition at line 124 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
IFFTFilterType::Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_IFFTFilter2 [private]

Definition at line 129 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
MultiplyFilterType::Pointer itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_MultiplyFilter [private]

Definition at line 130 of file itkRichardsonLucyDeconvolutionImageFilter.h.

template<class TInputImage , class TKernelImage = TInputImage, class TOutputImage = TInputImage>
InternalImagePointerType itk::RichardsonLucyDeconvolutionImageFilter< TInputImage, TKernelImage, TOutputImage >::m_PaddedInput [private]

Definition at line 121 of file itkRichardsonLucyDeconvolutionImageFilter.h.


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