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

itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField > Class Template Reference
[Deformable Registration Methods]

Deformably register two images using a PDE algorithm. More...

#include <itkPDEDeformableRegistrationFilter.h>

Inheritance diagram for itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >:

Inheritance graph
[legend]
Collaboration diagram for itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef PDEDeformableRegistrationFilter Self
typedef DenseFiniteDifferenceImageFilter<
TDeformationField, TDeformationField > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TFixedImage FixedImageType
typedef FixedImageType::Pointer FixedImagePointer
typedef FixedImageType::ConstPointer FixedImageConstPointer
typedef TMovingImage MovingImageType
typedef MovingImageType::Pointer MovingImagePointer
typedef MovingImageType::ConstPointer MovingImageConstPointer
typedef TDeformationField DeformationFieldType
typedef DeformationFieldType::Pointer DeformationFieldPointer
typedef Superclass::OutputImageType OutputImageType
typedef Superclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
typedef PDEDeformableRegistrationFunction<
FixedImageType, MovingImageType,
DeformationFieldType
PDEDeformableRegistrationFunctionType

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension)
void SetFixedImage (const FixedImageType *ptr)
const FixedImageTypeGetFixedImage (void)
void SetMovingImage (const MovingImageType *ptr)
const MovingImageTypeGetMovingImage (void)
void SetInitialDeformationField (DeformationFieldType *ptr)
DeformationFieldTypeGetDeformationField ()
const double * GetStandardDeviations (void)
virtual void SetStandardDeviations (double data[])
virtual void SetStandardDeviations (double value)

Static Public Member Functions

Pointer New ()

Protected Member Functions

 PDEDeformableRegistrationFilter ()
 ~PDEDeformableRegistrationFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual void CopyInputToOutput ()
virtual void InitializeIteration ()
virtual void SmoothDeformationField ()
virtual void CopyDeformationField (DeformationFieldType *input, DeformationFieldType *output)
virtual void GenerateOutputInformation ()
virtual void GenerateInputRequestedRegion ()
virtual bool Halt ()

Detailed Description

template<class TFixedImage, class TMovingImage, class TDeformationField>
class itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >

Deformably register two images using a PDE algorithm.

PDEDeformableRegistrationFilter is a base case for filter implementing a PDE deformable algorithm that register two images by computing the deformation field which will map a moving image onto a fixed image.

A deformation field is represented as a image whose pixel type is some vector type with at least N elements, where N is the dimension of the fixed image. The vector type must support element access via operator []. It is assumed that the vector elements behave like floating point scalars.

This class is templated over the fixed image type, moving image type and the deformation Field type.

The input fixed and moving images are set via methods SetFixedImage and SetMovingImage respectively. An initial deformation field maybe set via SetInitialDeformationField or SetInput. If no initial field is set, a zero field is used as the initial condition.

The output deformation field can be obtained via methods GetOutput or GetDeformationField.

The PDE algorithm is run for a user defined number of iterations. Typically the PDE algorithm requires period Gaussin smoothing of the deformation field to enforce an elastic-like condition. The amount of smoothing is governed by a set of user defined standard deviations (one for each dimension).

This class make use of the finite difference solver hierarchy. Update for each iteration is computed using a PDEDeformableRegistrationFunction.

Warning:
This filter assumes that the fixed image type, moving image type and deformation field type all have the same number of dimensions.
See also:
PDEDeformableRegistrationFunction.

Definition at line 66 of file itkPDEDeformableRegistrationFilter.h.


Member Typedef Documentation

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef SmartPointer<const Self> itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::ConstPointer
 

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 76 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef DeformationFieldType::Pointer itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::DeformationFieldPointer
 

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 97 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef TDeformationField itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::DeformationFieldType
 

Deformation field type.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 96 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef Superclass::FiniteDifferenceFunctionType itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::FiniteDifferenceFunctionType
 

FiniteDifferenceFunction type.

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 104 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef FixedImageType::ConstPointer itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::FixedImageConstPointer
 

Definition at line 88 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef FixedImageType::Pointer itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::FixedImagePointer
 

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 87 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef TFixedImage itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::FixedImageType
 

FixedImage image type.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 86 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef MovingImageType::ConstPointer itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::MovingImageConstPointer
 

Definition at line 93 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef MovingImageType::Pointer itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::MovingImagePointer
 

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 92 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef TMovingImage itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::MovingImageType
 

MovingImage image type.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 91 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef Superclass::OutputImageType itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::OutputImageType
 

Types inherithed from the superclass

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Definition at line 100 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef PDEDeformableRegistrationFunction<FixedImageType,MovingImageType, DeformationFieldType> itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::PDEDeformableRegistrationFunctionType
 

PDEDeformableRegistrationFilterFunction type. Definition at line 108 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef SmartPointer<Self> itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::Pointer
 

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 75 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef PDEDeformableRegistrationFilter itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::Self
 

Standard class typedefs.

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 72 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
typedef DenseFiniteDifferenceImageFilter< TDeformationField,TDeformationField> itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::Superclass
 

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

Definition at line 74 of file itkPDEDeformableRegistrationFilter.h.


Constructor & Destructor Documentation

template<class TFixedImage, class TMovingImage, class TDeformationField>
itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::PDEDeformableRegistrationFilter  )  [protected]
 

template<class TFixedImage, class TMovingImage, class TDeformationField>
itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::~PDEDeformableRegistrationFilter  )  [inline, protected]
 

Definition at line 146 of file itkPDEDeformableRegistrationFilter.h.


Member Function Documentation

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::CopyDeformationField DeformationFieldType input,
DeformationFieldType output
[protected, virtual]
 

Utitlity to copy one buffered region of one deformation field to another deformation field. For efficiency no region checking is done.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::CopyInputToOutput  )  [protected, virtual]
 

A simple method to copy the data from the input to the output. If the input does not exist, a zero field is written to the output.

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::GenerateInputRequestedRegion  )  [protected, virtual]
 

It is difficult to compute in advance the input moving image region required to compute the requested output region. Thus the safest thing to do is to request for the whole moving image.

For the fixed image and deformation field, the input requested region set to be the same as that of the output requested region.

Reimplemented from itk::FiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::GenerateOutputInformation  )  [protected, virtual]
 

By default the output deformation field has the same Spacing, Origin and LargestPossibleRegion as the input/initial deformation field. If the initial deformation field is not set, the output information is copied from the fixed image.

Reimplemented from itk::ProcessObject.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual const char* itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::GetClassName  )  const [virtual]
 

Run-time type information (and related methods)

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

template<class TFixedImage, class TMovingImage, class TDeformationField>
DeformationFieldType* itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::GetDeformationField void   )  [inline]
 

Get output deformation field. Definition at line 131 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
const FixedImageType* itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::GetFixedImage void   ) 
 

Get the fixed image.

template<class TFixedImage, class TMovingImage, class TDeformationField>
const MovingImageType* itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::GetMovingImage void   ) 
 

Get the moving image.

template<class TFixedImage, class TMovingImage, class TDeformationField>
const double* itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::GetStandardDeviations void   )  [inline]
 

Get the Gaussian smoothing standard deviations. Definition at line 141 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual bool itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::Halt  )  [inline, protected, virtual]
 

Supplies the halting criteria for this class of filters. The algorithm will stop after a user-specified number of iterations.

Reimplemented from itk::FiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Definition at line 151 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::InitializeIteration  )  [protected, virtual]
 

Initialize the state of filter and equation before each iteration. Progress feeback is implemented as part of this method.

Reimplemented from itk::FiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

template<class TFixedImage, class TMovingImage, class TDeformationField>
itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
Superclass::ImageDimension 
 

Inherit some enums and typedefs from the superclass.

Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

template<class TFixedImage, class TMovingImage, class TDeformationField>
Pointer itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

template<class TFixedImage, class TMovingImage, class TDeformationField>
void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::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::DenseFiniteDifferenceImageFilter< TDeformationField, TDeformationField >.

Reimplemented in itk::DemonsRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >.

template<class TFixedImage, class TMovingImage, class TDeformationField>
void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::SetFixedImage const FixedImageType ptr  ) 
 

Set the fixed image.

template<class TFixedImage, class TMovingImage, class TDeformationField>
void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::SetInitialDeformationField DeformationFieldType ptr  )  [inline]
 

Set initial deformation field. Definition at line 127 of file itkPDEDeformableRegistrationFilter.h.

template<class TFixedImage, class TMovingImage, class TDeformationField>
void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::SetMovingImage const MovingImageType ptr  ) 
 

Set the moving image.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::SetStandardDeviations double  value  )  [virtual]
 

Set the Gaussian smoothing standard deviations. The values are set with respect to pixel coordinates.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::SetStandardDeviations double  data[]  )  [virtual]
 

Set the Gaussian smoothing standard deviations. The values are set with respect to pixel coordinates.

template<class TFixedImage, class TMovingImage, class TDeformationField>
virtual void itk::PDEDeformableRegistrationFilter< TFixedImage, TMovingImage, TDeformationField >::SmoothDeformationField  )  [protected, virtual]
 

Utility to smooth the deformation field (represented in the Output) using a Guassian operator. The amount of smoothing can be specified by setting the StandardDeviations.


The documentation for this class was generated from the following file:
Generated at Sun Apr 1 02:51:18 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000