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

itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage > Class Template Reference

Computes the inverse of a deformation field. More...

#include <itkInverseDeformationFieldImageFilter.h>

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

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

Collaboration graph
[legend]
List of all members.

Public Types

typedef InverseDeformationFieldImageFilter Self
typedef ImageToImageFilter<
TInputImage, TOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TInputImage InputImageType
typedef TOutputImage OutputImageType
typedef InputImageType::Pointer InputImagePointer
typedef InputImageType::ConstPointer InputImageConstPointer
typedef InputImageType::RegionType InputImageRegionType
typedef OutputImageType::Pointer OutputImagePointer
typedef KernelTransform< double,
itkGetStaticConstMacro(ImageDimension) 
KernelTransformType )
typedef KernelTransformType::Pointer KernelTransformPointerType
typedef OutputImageType::SizeType SizeType
typedef OutputImageType::IndexType IndexType
typedef TOutputImage::PixelType OutputPixelType
typedef OutputPixelType::ValueType OutputPixelComponentType
typedef TOutputImage::RegionType OutputImageRegionType
typedef TOutputImage::SpacingType SpacingType
typedef TOutputImage::PointType OriginPointType

Public Member Functions

virtual const char * GetNameOfClass () const
 itkStaticConstMacro (ImageDimension, unsigned int, TOutputImage::ImageDimension)
virtual void SetKernelTransform (KernelTransformType *_arg)
virtual KernelTransformTypeGetKernelTransform ()
virtual void SetSize (SizeType _arg)
virtual const SizeTypeGetSize ()
virtual const SpacingTypeGetOutputSpacing ()
virtual const OriginPointTypeGetOutputOrigin ()
virtual void GenerateOutputInformation ()
virtual void GenerateInputRequestedRegion ()
unsigned long GetMTime (void) const
virtual void SetOutputSpacing (SpacingType _arg)
virtual void SetOutputSpacing (const double *values)
virtual void SetOutputOrigin (OriginPointType _arg)
virtual void SetOutputOrigin (const double *values)
virtual void SetSubsamplingFactor (unsigned int _arg)
virtual unsigned int GetSubsamplingFactor ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

 InverseDeformationFieldImageFilter ()
 ~InverseDeformationFieldImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
void GenerateData ()
void PrepareKernelBaseSpline ()

Detailed Description

template<class TInputImage, class TOutputImage>
class itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >

Computes the inverse of a deformation field.

InverseDeformationFieldImageFilter takes a deformation field as input and computes the deformation field that is its inverse. If the input deformation field was mapping coordinates from a space A into a space B, the output of this filter will map coordinates from the space B into the space A.

Given that both the input and output deformation field are represented as discrete images with pixel type vector, the inverse will be only an estimation and will probably not correspond to a perfect inverse. The precision of the inverse can be improved at the price of increasing the computation time and memory consumption in this filter.

The method used for computing the inverse deformation field is to subsample the input field using a regular grid and create Kerned-Base Spline in which the reference landmarks are the coordinates of the deformed point and the target landmarks are the negative of the displacement vectors. The kernel-base spline is then used for regularly sampling the output space and recover vector values for every single pixel.

The subsampling factor used for the regular grid of the input field will determine the number of landmarks in the KernelBased spline and therefore it will have a dramatic effect on both the precision of output deformation field and the computational time required for the filter to complete the estimation. A large subsampling factor will result in few landmarks in the KernelBased spline, therefore on fast computation and low precision. A small subsampling factor will result in a large number of landmarks in the KernelBased spline, therefore a large memory consumption, long computation time and high precision for the inverse estimation.

This filter expects both the input and output images to be of pixel type Vector.

Definition at line 64 of file itkInverseDeformationFieldImageFilter.h.


Member Typedef Documentation

template<class TInputImage, class TOutputImage>
typedef SmartPointer<const Self> itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::ConstPointer
 

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

Definition at line 72 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef OutputImageType::IndexType itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::IndexType
 

Image index typedef.

Definition at line 101 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InputImageType::ConstPointer itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::InputImageConstPointer
 

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

Definition at line 76 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InputImageType::Pointer itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::InputImagePointer
 

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

Definition at line 75 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InputImageType::RegionType itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::InputImageRegionType
 

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

Definition at line 77 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TInputImage itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::InputImageType
 

Some convenient typedefs.

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

Definition at line 73 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef KernelTransformType::Pointer itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::KernelTransformPointerType
 

Definition at line 95 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef KernelTransform<double, itkGetStaticConstMacro(ImageDimension) itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::KernelTransformType)
 

Transform typedef.

Todo:
Check that input and output images have the same number of dimensions; this is required for consistency.

Definition at line 94 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TOutputImage::PointType itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::OriginPointType
 

Definition at line 112 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef OutputImageType::Pointer itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::OutputImagePointer
 

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 78 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TOutputImage::RegionType itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::OutputImageRegionType
 

Typedef to describe the output image region type.

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

Definition at line 108 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TOutputImage itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::OutputImageType
 

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 74 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef OutputPixelType::ValueType itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::OutputPixelComponentType
 

Definition at line 105 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TOutputImage::PixelType itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::OutputPixelType
 

Image pixel value typedef.

Definition at line 104 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SmartPointer<Self> itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::Pointer
 

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

Definition at line 71 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InverseDeformationFieldImageFilter itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::Self
 

Standard class typedefs.

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

Definition at line 69 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef OutputImageType::SizeType itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SizeType
 

Image size typedef.

Definition at line 98 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TOutputImage::SpacingType itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SpacingType
 

Image spacing typedef

Definition at line 111 of file itkInverseDeformationFieldImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef ImageToImageFilter<TInputImage,TOutputImage> itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::Superclass
 

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

Definition at line 70 of file itkInverseDeformationFieldImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage, class TOutputImage>
itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::InverseDeformationFieldImageFilter  )  [protected]
 

template<class TInputImage, class TOutputImage>
itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::~InverseDeformationFieldImageFilter  )  [inline, protected]
 

Definition at line 172 of file itkInverseDeformationFieldImageFilter.h.


Member Function Documentation

template<class TInputImage, class TOutputImage>
void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GenerateData  )  [protected, virtual]
 

GenerateData() computes the internal KernelBase spline and resamples the deformation field.

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GenerateInputRequestedRegion  )  [virtual]
 

InverseDeformationFieldImageFilter needs a different input requested region than the output requested region. As such, InverseDeformationFieldImageFilter needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.

See also:
ProcessObject::GenerateInputRequestedRegion()

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

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GenerateOutputInformation  )  [virtual]
 

InverseDeformationFieldImageFilter produces an image which is a different size than its input. As such, it needs to provide an implementation for GenerateOutputInformation() in order to inform the pipeline execution model. The original documentation of this method is below.

See also:
ProcessObject::GenerateOutputInformaton()

Reimplemented from itk::ProcessObject.

template<class TInputImage, class TOutputImage>
virtual KernelTransformType* itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetKernelTransform  )  [virtual]
 

Get a pointer to the coordinate transform.

template<class TInputImage, class TOutputImage>
unsigned long itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetMTime void   )  const [virtual]
 

Method Compute the Modified Time based on changed to the components.

Reimplemented from itk::Object.

template<class TInputImage, class TOutputImage>
virtual const char* itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods).

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

template<class TInputImage, class TOutputImage>
virtual const OriginPointType& itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetOutputOrigin  )  [virtual]
 

Get the output image origin.

template<class TInputImage, class TOutputImage>
virtual const SpacingType& itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetOutputSpacing  )  [virtual]
 

Get the output image spacing.

template<class TInputImage, class TOutputImage>
virtual const SizeType& itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetSize  )  [virtual]
 

Get the size of the output image.

template<class TInputImage, class TOutputImage>
virtual unsigned int itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::GetSubsamplingFactor  )  [virtual]
 

Set/Get the factor used for subsampling the input deformation field. A large value in this factor will produce a fast computation of the inverse field but with low precision. A small value of this factor will produce a precise computation of the inverse field at the price of large memory consumption and long computational time.

template<class TInputImage, class TOutputImage>
itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
TOutputImage::ImageDimension 
 

Number of dimensions.

template<class TInputImage, class TOutputImage>
Pointer itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage, class TOutputImage>
void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::PrepareKernelBaseSpline  )  [protected]
 

Subsample the input deformation field and generate the landmarks for the kernel base spline

template<class TInputImage, class TOutputImage>
void itk::InverseDeformationFieldImageFilter< 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::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SetKernelTransform KernelTransformType _arg  )  [virtual]
 

Set the coordinate transformation. Set the KernelBase spline used for resampling the deformation grid.

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SetOutputOrigin const double *  values  )  [virtual]
 

Set the output image origin.

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SetOutputOrigin OriginPointType  _arg  )  [virtual]
 

Set the output image origin.

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SetOutputSpacing const double *  values  )  [virtual]
 

Set the output image spacing.

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SetOutputSpacing SpacingType  _arg  )  [virtual]
 

Set the output image spacing.

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SetSize SizeType  _arg  )  [virtual]
 

Set the size of the output image.

template<class TInputImage, class TOutputImage>
virtual void itk::InverseDeformationFieldImageFilter< TInputImage, TOutputImage >::SetSubsamplingFactor unsigned int  _arg  )  [virtual]
 

Set/Get the factor used for subsampling the input deformation field. A large value in this factor will produce a fast computation of the inverse field but with low precision. A small value of this factor will produce a precise computation of the inverse field at the price of large memory consumption and long computational time.


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