ITK
4.3.0
Insight Segmentation and Registration Toolkit
|
#include <itkImageToSpatialObjectRegistrationMethod.h>
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 continuously 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.
Static Public Member Functions | |
static Pointer | New () |
Protected Attributes | |
ParametersType | m_InitialTransformParameters |
ParametersType | m_LastTransformParameters |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime |
bool | m_Updating |
Private Member Functions | |
ImageToSpatialObjectRegistrationMethod (const Self &) | |
void | operator= (const Self &) |
Additional Inherited Members | |
Protected Types inherited from itk::LightObject | |
typedef int | InternalReferenceCountType |
typedef SmartPointer< const Self > itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::ConstPointer |
Definition at line 92 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef DataObject::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::DataObjectPointer |
Smart Pointer type to a DataObject.
Definition at line 136 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef ProcessObject::DataObjectPointerArraySizeType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::DataObjectPointerArraySizeType |
Make a DataObject of the correct type to be used as the specified output.
Definition at line 182 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef FixedImageType::ConstPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::FixedImageConstPointer |
Definition at line 102 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef TFixedImage itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::FixedImageType |
Type of the Fixed image.
Definition at line 98 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef InterpolatorType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::InterpolatorPointer |
Definition at line 126 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef MetricType::InterpolatorType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::InterpolatorType |
Type of the Interpolator.
Definition at line 125 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef MetricType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MetricPointer |
Definition at line 112 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef ImageToSpatialObjectMetric< FixedImageType, MovingSpatialObjectType > itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MetricType |
Type of the metric.
Definition at line 111 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef MovingSpatialObjectType::ConstPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MovingSpatialObjectConstPointer |
Definition at line 107 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef TMovingSpatialObject itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::MovingSpatialObjectType |
Type of the Moving image.
Definition at line 105 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef SingleValuedNonLinearOptimizer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::OptimizerType |
Type of the optimizer.
Definition at line 129 of file itkImageToSpatialObjectRegistrationMethod.h.
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.
typedef SmartPointer< Self > itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::Pointer |
Definition at line 91 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef ImageToSpatialObjectRegistrationMethod itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::Self |
Standard class typedefs.
Definition at line 89 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef ProcessObject itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::Superclass |
Definition at line 90 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef TransformOutputType::ConstPointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformOutputConstPointer |
Definition at line 122 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef TransformOutputType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformOutputPointer |
Definition at line 121 of file itkImageToSpatialObjectRegistrationMethod.h.
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.
typedef TransformType::Pointer itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformPointer |
Definition at line 116 of file itkImageToSpatialObjectRegistrationMethod.h.
typedef MetricType::TransformType itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::TransformType |
Type of the Transform .
Definition at line 115 of file itkImageToSpatialObjectRegistrationMethod.h.
|
protected |
|
inlineprotectedvirtual |
Definition at line 207 of file itkImageToSpatialObjectRegistrationMethod.h.
|
private |
|
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.
|
protectedvirtual |
Method invoked by the pipeline in order to trigger the computation of the registration.
Reimplemented from itk::ProcessObject.
|
virtual |
Set/Get the Fixed image.
|
virtual |
Set/Get the initial transformation parameters.
|
virtual |
Set/Get the Interpolator.
|
virtual |
Get the last transformation parameters visited by the optimizer.
|
virtual |
Set/Get the Metric.
|
virtual |
Set/Get the Moving Spatial Object.
|
virtual |
Method to return the latest modified time of this object or any of its cached ivars
Reimplemented from itk::Object.
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::ProcessObject.
|
virtual |
Set/Get the Optimizer.
const TransformOutputType* itk::ImageToSpatialObjectRegistrationMethod< TFixedImage, TMovingSpatialObject >::GetOutput | ( | ) | const |
Returns the transform resulting from the registration process
|
virtual |
Set/Get the Transfrom.
|
protected |
Initialize by setting the interconnects between the components.
|
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.
|
static |
Method for creation through the object factory.
|
private |
|
protectedvirtual |
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.
|
virtual |
Set/Get the Fixed image.
|
virtual |
Set/Get the initial transformation parameters.
|
virtual |
Set/Get the Interpolator.
|
virtual |
Set/Get the Metric.
|
virtual |
Set/Get the Moving Spatial Object.
|
virtual |
Set/Get the Optimizer.
|
virtual |
Set/Get the Transfrom.
|
private |
Definition at line 231 of file itkImageToSpatialObjectRegistrationMethod.h.
|
protected |
Definition at line 218 of file itkImageToSpatialObjectRegistrationMethod.h.
|
private |
Definition at line 234 of file itkImageToSpatialObjectRegistrationMethod.h.
|
protected |
Definition at line 219 of file itkImageToSpatialObjectRegistrationMethod.h.
|
private |
Definition at line 227 of file itkImageToSpatialObjectRegistrationMethod.h.
|
private |
Definition at line 230 of file itkImageToSpatialObjectRegistrationMethod.h.
|
private |
Definition at line 228 of file itkImageToSpatialObjectRegistrationMethod.h.
|
private |
Definition at line 233 of file itkImageToSpatialObjectRegistrationMethod.h.