ITK  4.1.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Private Attributes
itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > Class Template Reference

#include <itkMIRegistrationFunction.h>

+ Inheritance diagram for itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >:
+ Collaboration diagram for itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >:

List of all members.

Classes

struct  GlobalDataStruct

Public Types

typedef SmartPointer< const SelfConstPointer
typedef double CoordRepType
typedef CovariantVector
< double,
itkGetStaticConstMacro(ImageDimension) > 
CovariantVectorType
typedef
LinearInterpolateImageFunction
< MovingImageType,
CoordRepType
DefaultInterpolatorType
typedef
Superclass::DisplacementFieldType 
DisplacementFieldType
typedef
Superclass::DisplacementFieldTypePointer 
DisplacementFieldTypePointer
typedef
Superclass::FixedImagePointer 
FixedImagePointer
typedef Superclass::FixedImageType FixedImageType
typedef Superclass::FloatOffsetType FloatOffsetType
typedef
GradientCalculatorType::Pointer 
GradientCalculatorPointer
typedef
CentralDifferenceImageFunction
< FixedImageType
GradientCalculatorType
typedef FixedImageType::IndexType IndexType
typedef InterpolatorType::Pointer InterpolatorPointer
typedef
InterpolateImageFunction
< MovingImageType,
CoordRepType
InterpolatorType
typedef
Superclass::MovingImagePointer 
MovingImagePointer
typedef Superclass::MovingImageType MovingImageType
typedef
Superclass::NeighborhoodType 
NeighborhoodType
typedef Superclass::PixelType PixelType
typedef SmartPointer< SelfPointer
typedef InterpolatorType::PointType PointType
typedef Superclass::RadiusType RadiusType
typedef MIRegistrationFunction Self
typedef FixedImageType::SizeType SizeType
typedef FixedImageType::SpacingType SpacingType
typedef
PDEDeformableRegistrationFunction
< TFixedImage, TMovingImage,
TDisplacementField > 
Superclass
typedef Superclass::TimeStepType TimeStepType

Public Member Functions

virtual TimeStepType ComputeGlobalTimeStep (void *) const
virtual PixelType ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0))
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual void * GetGlobalDataPointer () const
InterpolatorTypeGetMovingImageInterpolator (void)
virtual const char * GetNameOfClass () const
virtual void InitializeIteration ()
virtual void ReleaseGlobalDataPointer (void *GlobalData) const
void SetDoInverse (bool b=false)
void SetMinNorm (float ts=1.0)
void SetMovingImageInterpolator (InterpolatorType *ptr)

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = Superclass::ImageDimension

Protected Types

typedef
ConstNeighborhoodIterator
< FixedImageType
FixedImageNeighborhoodIteratorType

Protected Member Functions

 MIRegistrationFunction ()
void PrintSelf (std::ostream &os, Indent indent) const
 ~MIRegistrationFunction ()

Private Attributes

double m_DenominatorThreshold
bool m_DoInverse
GradientCalculatorPointer m_FixedImageGradientCalculator
PointType m_FixedImageOrigin
SpacingType m_FixedImageSpacing
double m_IntensityDifferenceThreshold
double m_MetricTotal
float m_Minnorm
GradientCalculatorPointer m_MovingImageGradientCalculator
InterpolatorPointer m_MovingImageInterpolator
unsigned int m_NumberOfBins
unsigned int m_NumberOfSamples
TimeStepType m_TimeStep
 MIRegistrationFunction (const Self &)
void operator= (const Self &)

Detailed Description

template<class TFixedImage, class TMovingImage, class TDisplacementField>
class itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >

This class encapsulates a mutual information force for deformable registration algorithms. It is used by a RegistrationFilter to compute the output displacement field which will map a moving image onto a a fixed image.

Non-integer moving image values are obtained by using interpolation. The default interpolator is of type LinearInterpolateImageFunction. The user may set other interpolators via method SetMovingImageInterpolator. Note that the input interpolator must derive from baseclass InterpolateImageFunction.

This class is templated over the fixed image type, moving image type, and the displacement field type.

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

Definition at line 53 of file itkMIRegistrationFunction.h.


Member Typedef Documentation

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef SmartPointer< const Self > itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::ConstPointer
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef double itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::CoordRepType

Interpolator type.

Definition at line 100 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef CovariantVector< double, itkGetStaticConstMacro(ImageDimension) > itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::CovariantVectorType

Covariant vector type.

Definition at line 108 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef LinearInterpolateImageFunction< MovingImageType, CoordRepType > itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::DefaultInterpolatorType

Definition at line 105 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::DisplacementFieldType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldType
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::DisplacementFieldTypePointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldTypePointer
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef ConstNeighborhoodIterator< FixedImageType > itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImageNeighborhoodIteratorType [protected]

FixedImage image neighborhood iterator type.

Definition at line 157 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::FixedImagePointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImagePointer
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::FixedImageType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImageType
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::FloatOffsetType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::FloatOffsetType

A floating point offset from an image grid location. Used for interpolation among grid values in a neighborhood.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 96 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef GradientCalculatorType::Pointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GradientCalculatorPointer

Definition at line 112 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef CentralDifferenceImageFunction< FixedImageType > itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GradientCalculatorType

Gradient calculator type.

Definition at line 111 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef FixedImageType::IndexType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::IndexType

Definition at line 80 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef InterpolatorType::Pointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::InterpolatorPointer

Definition at line 102 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef InterpolateImageFunction< MovingImageType, CoordRepType > itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::InterpolatorType

Definition at line 101 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::MovingImagePointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImagePointer
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::MovingImageType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImageType
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::NeighborhoodType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::NeighborhoodType

The type of data structure that is passed to this function object to evaluate at a pixel that does not lie on a data set boundary.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 95 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::PixelType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::PixelType

Inherit some enums from the superclass.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 93 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef SmartPointer< Self > itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::Pointer
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef InterpolatorType::PointType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::PointType

Definition at line 103 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::RadiusType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::RadiusType

Neighborhood radius type

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 94 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef MIRegistrationFunction itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::Self
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef FixedImageType::SizeType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SizeType

Definition at line 81 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef FixedImageType::SpacingType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SpacingType

Definition at line 82 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef PDEDeformableRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::Superclass
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::TimeStepType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::TimeStepType

Define the TimeStepType to always be double.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 97 of file itkMIRegistrationFunction.h.


Constructor & Destructor Documentation

template<class TFixedImage , class TMovingImage , class TDisplacementField >
itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MIRegistrationFunction ( ) [protected]
template<class TFixedImage , class TMovingImage , class TDisplacementField >
itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::~MIRegistrationFunction ( ) [inline, protected]

Definition at line 153 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MIRegistrationFunction ( const Self ) [private]

The global timestep.


Member Function Documentation

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual TimeStepType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::ComputeGlobalTimeStep ( void *  ) const [inline, virtual]

This class uses a constant timestep of 1.

Implements itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 123 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual PixelType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::ComputeUpdate ( const NeighborhoodType neighborhood,
void *  globalData,
const FloatOffsetType offset = FloatOffsetType(0.0) 
) [virtual]

This method is called by a finite difference solver image filter at each pixel that does not lie on a data set boundary

Implements itk::FiniteDifferenceFunction< TDisplacementField >.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual::itk::LightObject::Pointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::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::LightObject.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual void* itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetGlobalDataPointer ( ) const [inline, virtual]

Return a pointer to a global data structure that is passed to this object from the solver at each calculation.

Implements itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 128 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
InterpolatorType* itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetMovingImageInterpolator ( void  ) [inline]

Get the moving image interpolator.

Definition at line 119 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual const char* itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::PDEDeformableRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual void itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::InitializeIteration ( ) [virtual]

Set the object's state before each iteration.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
static Pointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::LightObject.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
void itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::operator= ( const Self ) [private]
template<class TFixedImage , class TMovingImage , class TDisplacementField >
void itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::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::PDEDeformableRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual void itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::ReleaseGlobalDataPointer ( void *  GlobalData) const [inline, virtual]

Release memory for global data structure.

Implements itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 136 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
void itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetDoInverse ( bool  b = false) [inline]

Definition at line 150 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
void itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetMinNorm ( float  ts = 1.0) [inline]

Definition at line 148 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
void itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::SetMovingImageInterpolator ( InterpolatorType ptr) [inline]

Set the moving image interpolator.

Definition at line 115 of file itkMIRegistrationFunction.h.


Member Data Documentation

template<class TFixedImage , class TMovingImage , class TDisplacementField >
const unsigned int itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::ImageDimension = Superclass::ImageDimension [static]

Inherit some enums from the superclass.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 90 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
double itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_DenominatorThreshold [private]

Threshold below which the denominator term is considered zero.

Definition at line 186 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
bool itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_DoInverse [private]

Definition at line 197 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
GradientCalculatorPointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_FixedImageGradientCalculator [private]

Function to compute derivatives of the fixed image.

Definition at line 177 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
PointType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_FixedImageOrigin [private]

Definition at line 174 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
SpacingType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_FixedImageSpacing [private]

Cache fixed image information.

Definition at line 173 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
double itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_IntensityDifferenceThreshold [private]

Threshold below which two intensity value are assumed to match.

Definition at line 189 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
double itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MetricTotal [mutable, private]

Definition at line 191 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
float itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_Minnorm [private]

Definition at line 195 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
GradientCalculatorPointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MovingImageGradientCalculator [private]

Function to compute derivatives of the moving image.

Definition at line 180 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
InterpolatorPointer itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_MovingImageInterpolator [private]

Function to interpolate the moving image.

Definition at line 183 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
unsigned int itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_NumberOfBins [private]

Definition at line 194 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
unsigned int itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_NumberOfSamples [private]

Definition at line 193 of file itkMIRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
TimeStepType itk::MIRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_TimeStep [protected]

The global timestep.

Definition at line 166 of file itkMIRegistrationFunction.h.


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