ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject > Class Template Reference

Base class for Image Registration Methods. More...

#include <itkImageToSpatialObjectRegistrationMethod.h>

Inheritance diagram for itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >:
Collaboration diagram for itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >:

List of all members.

Public Types

typedef SmartPointer< const SelfConstPointer
typedef DataObject::Pointer DataObjectPointer
typedef
ProcessObject::DataObjectPointerArraySizeType 
DataObjectPointerArraySizeType
typedef
FixedImageType::ConstPointer 
FixedImageConstPointer
typedef TFixedImage FixedImageType
typedef InterpolatorType::Pointer InterpolatorPointer
typedef
MetricType::InterpolatorType 
InterpolatorType
typedef MetricType::Pointer MetricPointer
typedef
ImageToSpatialObjectMetric
< FixedImageType,
MovingSpatialObjectType
MetricType
typedef
MovingSpatialObjectType::ConstPointer 
MovingSpatialObjectConstPointer
typedef TMovingSpatialObject MovingSpatialObjectType
typedef
SingleValuedNonLinearOptimizer 
OptimizerType
typedef
MetricType::TransformParametersType 
ParametersType
typedef SmartPointer< SelfPointer
typedef
ImageToSpatialObjectRegistrationMethod 
Self
typedef ProcessObject Superclass
typedef
TransformOutputType::ConstPointer 
TransformOutputConstPointer
typedef
TransformOutputType::Pointer 
TransformOutputPointer
typedef DataObjectDecorator
< TransformType
TransformOutputType
typedef TransformType::Pointer TransformPointer
typedef MetricType::TransformType TransformType

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const ParametersTypeGetLastTransformParameters ()
unsigned long GetMTime () const
virtual const char * GetNameOfClass () const
const TransformOutputTypeGetOutput () const
virtual DataObjectPointer MakeOutput (DataObjectPointerArraySizeType idx)
void StartRegistration (void)
virtual void SetFixedImage (const FixedImageType *_arg)
virtual const FixedImageTypeGetFixedImage ()
virtual void SetMovingSpatialObject (const MovingSpatialObjectType *_arg)
virtual const
MovingSpatialObjectType
GetMovingSpatialObject ()
virtual void SetOptimizer (OptimizerType *_arg)
virtual OptimizerTypeGetOptimizer ()
virtual void SetMetric (MetricType *_arg)
virtual MetricTypeGetMetric ()
virtual void SetTransform (TransformType *_arg)
virtual TransformTypeGetTransform ()
virtual void SetInterpolator (InterpolatorType *_arg)
virtual InterpolatorTypeGetInterpolator ()
virtual void SetInitialTransformParameters (ParametersType _arg)
virtual const ParametersTypeGetInitialTransformParameters ()

Static Public Member Functions

static Pointer New ()

Protected Member Functions

void GenerateData ()
 ImageToSpatialObjectRegistrationMethod ()
void Initialize () throw ( ExceptionObject )
void PrintSelf (std::ostream &os, Indent indent) const
virtual ~ImageToSpatialObjectRegistrationMethod ()

Protected Attributes

ParametersType m_InitialTransformParameters
ParametersType m_LastTransformParameters

Private Member Functions

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

Private Attributes

FixedImageConstPointer m_FixedImage
InterpolatorPointer m_Interpolator
MetricPointer m_Metric
MovingSpatialObjectConstPointer m_MovingSpatialObject
OptimizerType::Pointer m_Optimizer
TransformPointer m_Transform

Detailed Description

template<typename TFixedImage, typename TMovingSpatialObject>
class itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >

Base class for Image Registration Methods.

This class is templated over the type of the image and the type of the SpatialObject to be registered. A generic Transform is used by this class. That allows to select at run time the particular type of transformation that is to be applied for registering the images.

This method use a generic Metric in order to compare the two images. the final goal of the registration method is to find the set of parameters of the Transformation that optimizes the metric.

The registration method also support a generic optimizer that can be selected at run-time. The only restriction for the optimizer is that it should be able to operate in single-valued cost functions given that the metrics used to compare images provide a single value as output.

The terms : Fixed image and Moving SpatialObject are used in this class to indicate that the SpatialObject is being mapped by the transform.

This class uses the coordinate system of the Fixed image and searchs for a transform that will map the Moving SpatialObject on top of the Fixed image. For doing so, a Metric will be continously applied to compare the Fixed image with the Transformed Moving SpatialObject.

The ImageToSpatialObjectRegistrationMethod is different from the rest of the registration framework in ITK regarding the interpretation of the Transform with respect to the Fixed and Moving objects. In most of the ITK registration framework, the Transform computed by the optimizer is the one that maps points from the space of the Fixed object into the space of the Moving object. This direction of the transform is the one that makes easier to resample the Moving object into the space of the Fixed object.

In the particular case of the ImageToSpatialObject registration, the Transform to be computed is the one mapping points from the SpatialObject into the Image, despite the fact that the SpatialObject is called the "Moving" object and the image is called the "Fixed" object. This change of reference system is the consequence of using this type of registration in applications that are based on Visualization. In the context of such visualizations it is simpler to think in terms of the Transform that can be used for displaying the SpatialObject in the appropriate position with respect to the image. Since this process does not involve resampling, but providing a Transform to a visualization routine, it is usually more natural to use the Transform that maps points from the SpatialObject space the image space.

A full discussion of the Transform directions in the ITK registration framework can be found in the ITK Software Guide.

Definition at line 85 of file itkImageToSpatialObjectRegistrationMethod.h.


Member Typedef Documentation

template<typename TFixedImage , typename TMovingSpatialObject >
typedef SmartPointer< const Self > itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::ConstPointer

Reimplemented from itk::ProcessObject.

Definition at line 92 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef DataObject::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::DataObjectPointer

Smart Pointer type to a DataObject.

Reimplemented from itk::ProcessObject.

Definition at line 136 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef ProcessObject::DataObjectPointerArraySizeType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::DataObjectPointerArraySizeType

Make a DataObject of the correct type to be used as the specified output.

Reimplemented from itk::ProcessObject.

Definition at line 185 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef FixedImageType::ConstPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::FixedImageConstPointer

Definition at line 102 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef TFixedImage itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::FixedImageType

Type of the Fixed image.

Definition at line 98 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef InterpolatorType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::InterpolatorPointer

Definition at line 126 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef MetricType::InterpolatorType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::InterpolatorType

Type of the Interpolator.

Definition at line 125 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef MetricType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MetricPointer

Definition at line 112 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef ImageToSpatialObjectMetric< FixedImageType, MovingSpatialObjectType > itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MetricType

Type of the metric.

Definition at line 111 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef MovingSpatialObjectType::ConstPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MovingSpatialObjectConstPointer

Definition at line 107 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef TMovingSpatialObject itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MovingSpatialObjectType

Type of the Moving image.

Definition at line 105 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef SingleValuedNonLinearOptimizer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::OptimizerType

Type of the optimizer.

Definition at line 129 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef MetricType::TransformParametersType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::ParametersType

Type of the Transformation parameters This is the same type used to represent the search space of the optimization algorithm

Definition at line 133 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef SmartPointer< Self > itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::Pointer

Reimplemented from itk::ProcessObject.

Definition at line 91 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef ImageToSpatialObjectRegistrationMethod itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::Self

Standard class typedefs.

Reimplemented from itk::ProcessObject.

Definition at line 89 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef ProcessObject itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::Superclass

Reimplemented from itk::ProcessObject.

Definition at line 90 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef TransformOutputType::ConstPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformOutputConstPointer

Definition at line 122 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef TransformOutputType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformOutputPointer

Definition at line 121 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef DataObjectDecorator< TransformType > itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformOutputType

Type for the output: Using Decorator pattern for enabling the Transform to be passed in the data pipeline

Definition at line 120 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef TransformType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformPointer

Definition at line 116 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
typedef MetricType::TransformType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformType

Type of the Transform .

Definition at line 115 of file itkImageToSpatialObjectRegistrationMethod.h.


Constructor & Destructor Documentation

template<typename TFixedImage , typename TMovingSpatialObject >
itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::ImageToSpatialObjectRegistrationMethod ( ) [protected]
template<typename TFixedImage , typename TMovingSpatialObject >
virtual itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::~ImageToSpatialObjectRegistrationMethod ( ) [inline, protected, virtual]

Definition at line 195 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::ImageToSpatialObjectRegistrationMethod ( const Self ) [private]

Member Function Documentation

template<typename TFixedImage , typename TMovingSpatialObject >
virtual::itk::LightObject::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::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::Object.

template<typename TFixedImage , typename TMovingSpatialObject >
void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GenerateData ( ) [protected, virtual]

Method invoked by the pipeline in order to trigger the computation of the registration.

Reimplemented from itk::ProcessObject.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual const FixedImageType* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetFixedImage ( ) [virtual]

Set/Get the Fixed image.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual const ParametersType& itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetInitialTransformParameters ( ) [virtual]

Set/Get the initial transformation parameters.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual InterpolatorType* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetInterpolator ( ) [virtual]

Set/Get the Interpolator.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual const ParametersType& itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetLastTransformParameters ( ) [virtual]

Get the last transformation parameters visited by the optimizer.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual MetricType* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetMetric ( ) [virtual]

Set/Get the Metric.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual const MovingSpatialObjectType* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetMovingSpatialObject ( ) [virtual]

Set/Get the Moving Spatial Object.

template<typename TFixedImage , typename TMovingSpatialObject >
unsigned long itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetMTime ( ) const [virtual]

Method to return the latest modified time of this object or any of its cached ivars

Reimplemented from itk::Object.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual const char* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::ProcessObject.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual OptimizerType* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetOptimizer ( ) [virtual]

Set/Get the Optimizer.

template<typename TFixedImage , typename TMovingSpatialObject >
const TransformOutputType* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetOutput ( ) const

Returns the transform resulting from the registration process

template<typename TFixedImage , typename TMovingSpatialObject >
virtual TransformType* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetTransform ( ) [virtual]

Set/Get the Transfrom.

template<typename TFixedImage , typename TMovingSpatialObject >
void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::Initialize ( ) throw ( ExceptionObject ) [protected]

Initialize by setting the interconnects between the components.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual DataObjectPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MakeOutput ( DataObjectPointerArraySizeType  idx) [virtual]

Make a DataObject of the correct type to used as the specified output. Every ProcessObject subclass must be able to create a DataObject that can be used as a specified output. This method is automatically called when DataObject::DisconnectPipeline() is called. DataObject::DisconnectPipeline, disconnects a data object from being an output of its current source. When the data object is disconnected, the ProcessObject needs to construct a replacement output data object so that the ProcessObject is in a valid state. So DataObject::DisconnectPipeline eventually calls ProcessObject::MakeOutput. Note that MakeOutput always returns a itkSmartPointer to a DataObject. ImageSource and MeshSource override this method to create the correct type of image and mesh respectively. If a filter has multiple outputs of different types, then that filter must provide an implementation of MakeOutput().

Reimplemented from itk::ProcessObject.

template<typename TFixedImage , typename TMovingSpatialObject >
static Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<typename TFixedImage , typename TMovingSpatialObject >
void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::operator= ( const Self ) [private]

Time when GenerateOutputInformation was last called.

Reimplemented from itk::ProcessObject.

template<typename TFixedImage , typename TMovingSpatialObject >
void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::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::ProcessObject.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::SetFixedImage ( const FixedImageType _arg) [virtual]

Set/Get the Fixed image.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::SetInitialTransformParameters ( ParametersType  _arg) [virtual]

Set/Get the initial transformation parameters.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::SetInterpolator ( InterpolatorType _arg) [virtual]

Set/Get the Interpolator.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::SetMetric ( MetricType _arg) [virtual]

Set/Get the Metric.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::SetMovingSpatialObject ( const MovingSpatialObjectType _arg) [virtual]

Set/Get the Moving Spatial Object.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::SetOptimizer ( OptimizerType _arg) [virtual]

Set/Get the Optimizer.

template<typename TFixedImage , typename TMovingSpatialObject >
virtual void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::SetTransform ( TransformType _arg) [virtual]

Set/Get the Transfrom.

template<typename TFixedImage , typename TMovingSpatialObject >
void itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::StartRegistration ( void  )

Method that initiates the registration.


Member Data Documentation

template<typename TFixedImage , typename TMovingSpatialObject >
FixedImageConstPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::m_FixedImage [private]

Definition at line 218 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
ParametersType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::m_InitialTransformParameters [protected]

Definition at line 206 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
InterpolatorPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::m_Interpolator [private]

Definition at line 221 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
ParametersType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::m_LastTransformParameters [protected]

Definition at line 207 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
MetricPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::m_Metric [private]

Definition at line 214 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
MovingSpatialObjectConstPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::m_MovingSpatialObject [private]

Definition at line 217 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
OptimizerType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::m_Optimizer [private]

Definition at line 215 of file itkImageToSpatialObjectRegistrationMethod.h.

template<typename TFixedImage , typename TMovingSpatialObject >
TransformPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::m_Transform [private]

Definition at line 220 of file itkImageToSpatialObjectRegistrationMethod.h.


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