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::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField > Class Template Reference

#include <itkNCCRegistrationFunction.h>

+ Inheritance diagram for itk::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >:
+ Collaboration diagram for itk::NCCRegistrationFunction< 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 NCCRegistrationFunction 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 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

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

Private Member Functions

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

Private Attributes

double m_DenominatorThreshold
GradientCalculatorPointer m_FixedImageGradientCalculator
SpacingType m_FixedImageSpacing
double m_IntensityDifferenceThreshold
double m_MetricTotal
InterpolatorPointer m_MovingImageInterpolator
TimeStepType m_TimeStep

Detailed Description

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

This class encapsulate the PDE which drives the demons registration algorithm. It is used by NCCRegistrationFilter 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:
NCCRegistrationFilter

Definition at line 53 of file itkNCCRegistrationFunction.h.


Member Typedef Documentation

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

Interpolator type.

Definition at line 101 of file itkNCCRegistrationFunction.h.

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

Covariant vector type.

Definition at line 110 of file itkNCCRegistrationFunction.h.

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

Definition at line 107 of file itkNCCRegistrationFunction.h.

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

FixedImage image neighborhood iterator type.

Definition at line 156 of file itkNCCRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::FixedImagePointer itk::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImagePointer
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::FixedImageType itk::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::FixedImageType
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::FloatOffsetType itk::NCCRegistrationFunction< 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 97 of file itkNCCRegistrationFunction.h.

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

Definition at line 114 of file itkNCCRegistrationFunction.h.

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

Gradient calculator type.

Definition at line 113 of file itkNCCRegistrationFunction.h.

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

Definition at line 80 of file itkNCCRegistrationFunction.h.

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

Definition at line 104 of file itkNCCRegistrationFunction.h.

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

Definition at line 102 of file itkNCCRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::MovingImagePointer itk::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImagePointer
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::MovingImageType itk::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::MovingImageType
template<class TFixedImage , class TMovingImage , class TDisplacementField >
typedef Superclass::NeighborhoodType itk::NCCRegistrationFunction< 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 itkNCCRegistrationFunction.h.

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

Inherit some enums from the superclass.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 93 of file itkNCCRegistrationFunction.h.

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

Definition at line 105 of file itkNCCRegistrationFunction.h.

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

Neighborhood radius type

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 94 of file itkNCCRegistrationFunction.h.

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

Definition at line 81 of file itkNCCRegistrationFunction.h.

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

Definition at line 82 of file itkNCCRegistrationFunction.h.

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

Define the TimeStepType to always be double.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 98 of file itkNCCRegistrationFunction.h.


Constructor & Destructor Documentation

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

Definition at line 152 of file itkNCCRegistrationFunction.h.

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

Member Function Documentation

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

This class uses a constant timestep of 1.

Implements itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 125 of file itkNCCRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual PixelType itk::NCCRegistrationFunction< 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::NCCRegistrationFunction< 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::NCCRegistrationFunction< 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 130 of file itkNCCRegistrationFunction.h.

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

Get the moving image interpolator.

Definition at line 121 of file itkNCCRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
virtual const char* itk::NCCRegistrationFunction< 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::NCCRegistrationFunction< 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::NCCRegistrationFunction< 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::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

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

template<class TFixedImage , class TMovingImage , class TDisplacementField >
void itk::NCCRegistrationFunction< 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::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::ReleaseGlobalDataPointer ( void *  GlobalData) const [inline, virtual]

Release memory for global data structure.

Implements itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 138 of file itkNCCRegistrationFunction.h.

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

Set the moving image interpolator.

Definition at line 117 of file itkNCCRegistrationFunction.h.


Member Data Documentation

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

Inherit some enums from the superclass.

Reimplemented from itk::FiniteDifferenceFunction< TDisplacementField >.

Definition at line 90 of file itkNCCRegistrationFunction.h.

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

Threshold below which the denominator term is considered zero.

Definition at line 181 of file itkNCCRegistrationFunction.h.

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

Function to compute derivatives of the fixed image.

Definition at line 172 of file itkNCCRegistrationFunction.h.

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

Cache fixed image information.

Definition at line 169 of file itkNCCRegistrationFunction.h.

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

Threshold below which two intensity value are assumed to match.

Definition at line 184 of file itkNCCRegistrationFunction.h.

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

Definition at line 186 of file itkNCCRegistrationFunction.h.

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

Function to interpolate the moving image.

Definition at line 175 of file itkNCCRegistrationFunction.h.

template<class TFixedImage , class TMovingImage , class TDisplacementField >
TimeStepType itk::NCCRegistrationFunction< TFixedImage, TMovingImage, TDisplacementField >::m_TimeStep [private]

The global timestep.

Definition at line 178 of file itkNCCRegistrationFunction.h.


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