ITK
4.9.0
Insight Segmentation and Registration Toolkit
|
#include <itkVariationalRegistrationFilter.h>
Flexible framework for deformable registration of two images using PDE-based variational registration.
VariationalRegistrationFilter aims to minimize the functional
with by solving the associated Euler-Lagrange equation (ELE)
denotes the force term corresponding to the similarity measure and is a linear differential operator associated with the regularization term . The ELE is solved using gradient descent with a semi-implicite update scheme and step size :
VariationalRegistrationFilter has two images as input (fixed image , and moving image ) and computes the displacement field as output.
The force term is implemented in a subclass of VariationalRegistrationFunction. The computation of the regularization with is implemented in a subclass of VariationalRegistrationRegularizer. Different force terms and regularization methods can be combined by using the methods SetDifferenceFunction() and SetRegularizer().
The implemented method can be summariced as follows:
is implemented in the class VariationalRegistrationStopCriterion. Use AddObserver() to enable different types of stop criteria in the variational registration framework.
VariationalRegistrationFilter has the following parameters:
This class make use of the finite difference solver hierarchy.
For details see:
Definition at line 102 of file itkVariationalRegistrationFilter.h.
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > | |
static const unsigned int | ImageDimension |
Static Public Attributes inherited from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > | |
static const unsigned int | ImageDimension |
Static Public Attributes inherited from itk::InPlaceImageFilter< TDisplacementField, TDisplacementField > | |
static const unsigned int | InputImageDimension |
static const unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
static const unsigned int | InputImageDimension |
static const unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageSource< TDisplacementField > | |
static const unsigned int | OutputImageDimension |
Private Member Functions | |
void | operator= (const Self &) |
VariationalRegistrationFilter (const Self &) | |
Private Attributes | |
RegularizerPointer | m_Regularizer |
bool | m_SmoothDisplacementField |
bool | m_SmoothUpdateField |
bool | m_StopRegistrationFlag |
typedef SmartPointer< const Self > itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::ConstPointer |
Definition at line 111 of file itkVariationalRegistrationFilter.h.
typedef VariationalRegistrationDemonsFunction< FixedImageType, MovingImageType, DisplacementFieldType > itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::DefaultRegistrationFunctionType |
Definition at line 153 of file itkVariationalRegistrationFilter.h.
typedef VariationalRegistrationDiffusionRegularizer< DisplacementFieldType > itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::DefaultRegularizerType |
Definition at line 160 of file itkVariationalRegistrationFilter.h.
typedef DisplacementFieldType::Pointer itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldPointer |
Definition at line 134 of file itkVariationalRegistrationFilter.h.
typedef TDisplacementField itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldType |
Deformation field type.
Definition at line 133 of file itkVariationalRegistrationFilter.h.
typedef FixedImageType::ConstPointer itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::FixedImageConstPointer |
Definition at line 125 of file itkVariationalRegistrationFilter.h.
typedef FixedImageType::Pointer itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::FixedImagePointer |
Definition at line 124 of file itkVariationalRegistrationFilter.h.
typedef TFixedImage itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::FixedImageType |
FixedImage image type.
Definition at line 123 of file itkVariationalRegistrationFilter.h.
typedef MaskImageType::ConstPointer itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MaskImageConstPointer |
Definition at line 141 of file itkVariationalRegistrationFilter.h.
typedef unsigned char itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MaskImagePixelType |
MovingImage image type.
Definition at line 137 of file itkVariationalRegistrationFilter.h.
typedef MaskImageType::Pointer itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MaskImagePointer |
Definition at line 140 of file itkVariationalRegistrationFilter.h.
typedef Image< MaskImagePixelType, ImageDimension > itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MaskImageType |
Definition at line 139 of file itkVariationalRegistrationFilter.h.
typedef MovingImageType::ConstPointer itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MovingImageConstPointer |
Definition at line 130 of file itkVariationalRegistrationFilter.h.
typedef MovingImageType::Pointer itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MovingImagePointer |
Definition at line 129 of file itkVariationalRegistrationFilter.h.
typedef TMovingImage itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MovingImageType |
MovingImage image type.
Definition at line 128 of file itkVariationalRegistrationFilter.h.
typedef Superclass::OutputImageType itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::OutputImageType |
Types inherited from the superclass
Definition at line 144 of file itkVariationalRegistrationFilter.h.
typedef SmartPointer< Self > itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::Pointer |
Definition at line 110 of file itkVariationalRegistrationFilter.h.
typedef VariationalRegistrationFunction< FixedImageType, MovingImageType, DisplacementFieldType > itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::RegistrationFunctionType |
VariationalRegistrationFunction type.
Definition at line 151 of file itkVariationalRegistrationFilter.h.
typedef RegularizerType::Pointer itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::RegularizerPointer |
Definition at line 158 of file itkVariationalRegistrationFilter.h.
typedef VariationalRegistrationRegularizer< DisplacementFieldType > itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::RegularizerType |
Regularizer type.
Definition at line 157 of file itkVariationalRegistrationFilter.h.
typedef VariationalRegistrationFilter itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::Self |
Standard class typedefs
Definition at line 107 of file itkVariationalRegistrationFilter.h.
typedef DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::Superclass |
Definition at line 109 of file itkVariationalRegistrationFilter.h.
typedef Superclass::TimeStepType itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::TimeStepType |
The value type of a time step. Inherited from the superclass.
Definition at line 147 of file itkVariationalRegistrationFilter.h.
|
protected |
|
inlineprotected |
Definition at line 245 of file itkVariationalRegistrationFilter.h.
|
private |
|
protectedvirtual |
Apply update.
Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField >.
Reimplemented in itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >, and itk::VariationalSymmetricDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
protectedvirtual |
A simple method to copy the data from the input to the output. If the input does not exist, a zero field is written to the output.
Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField >.
|
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.
Reimplemented in itk::VariationalSymmetricDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
protected |
Downcast the DifferenceFunction using a dynamic_cast to ensure that it is of the correct type. This method will throw an exception if the function is not of the expected type.
|
protected |
Downcast the DifferenceFunction using a dynamic_cast to ensure that it is of the correct type. This method will throw an exception if the function is not of the expected type.
|
protectedvirtual |
It is difficult to compute in advance the input moving image region required to compute the requested output region. Thus the safest thing to do is to request for the whole moving image.
For the fixed image and deformation field, the input requested region set to be the same as that of the output requested region.
Reimplemented from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField >.
|
protectedvirtual |
By default the output deformation field has the same Spacing, Origin and LargestPossibleRegion as the input/initial deformation field. If the initial deformation field is not set, the output information is copied from the fixed image.
Reimplemented from itk::ProcessObject.
|
inlinevirtual |
Get output deformation field.
Reimplemented in itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
Definition at line 191 of file itkVariationalRegistrationFilter.h.
|
virtual |
Get the fixed image.
|
virtual |
Get the mask image.
|
virtual |
Get the metric value. The metric value is the mean square difference in intensity between the fixed image and transforming moving image computed over the the overlapping region between the two images. This value is calculated for the current iteration
|
virtual |
Get the moving image.
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField >.
Reimplemented in itk::VariationalSymmetricDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >, and itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
virtual |
Get the number of valid inputs. For DenseRegistration, this checks whether the fixed and moving images have been set. While DenseRegistration can take a third input as an initial deformation field, this input is not a required input.
Reimplemented from itk::ProcessObject.
|
virtual |
Get the regularizer.
|
virtual |
Set that the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed using the VariationalRegistrationRegularizer.
|
virtual |
Set/Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed using the VariationalRegistrationRegularizer.
|
inlineprotectedvirtual |
This method returns true when the current iterative solution of the equation has met the criteria to stop solving.
Reimplemented from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField >.
Definition at line 287 of file itkVariationalRegistrationFilter.h.
|
protectedvirtual |
This method is called before iterating the solution.
Reimplemented from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField >.
Reimplemented in itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >, and itk::VariationalSymmetricDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
protectedvirtual |
Initialize the state of filter and equation before each iteration. Progress feedback is implemented as part of this method.
Reimplemented from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField >.
|
static |
Method for creation through the object factory.
|
private |
|
protectedvirtual |
Print information about the filter.
Reimplemented from itk::InPlaceImageFilter< TDisplacementField, TDisplacementField >.
Reimplemented in itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >, and itk::VariationalSymmetricDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
virtual |
Set the fixed image.
|
inlinevirtual |
Set initial deformation field.
Reimplemented in itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
Definition at line 187 of file itkVariationalRegistrationFilter.h.
|
virtual |
Set the mask image.
|
virtual |
Set the moving image.
|
virtual |
Set the regularizer.
|
virtual |
Set whether the deformation field is smoothed (regularized). Smoothing the deformation yields a solution elastic in nature. If SmoothDisplacementField is on, then the deformation field is smoothed using the VariationalRegistrationRegularizer.
|
virtual |
Set whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed using the VariationalRegistrationRegularizer.
|
virtual |
|
virtual |
Set that the deformation field is smoothed (regularized). Smoothing the deformation yields a solution elastic in nature. If SmoothDisplacementField is on, then the deformation field is smoothed using the VariationalRegistrationRegularizer.
|
virtual |
|
virtual |
Get whether the update field is smoothed (regularized). Smoothing the update field yields a solution viscous in nature. If SmoothUpdateField is on, then the update field is smoothed using the VariationalRegistrationRegularizer.
|
inlinevirtual |
Stop the registration after the current iteration.
Definition at line 240 of file itkVariationalRegistrationFilter.h.
|
inlineprotectedvirtual |
Override VerifyInputInformation() since this filter's inputs do not need to occupy the same physical space.
Reimplemented from itk::ImageToImageFilter< TDisplacementField, TDisplacementField >.
Definition at line 283 of file itkVariationalRegistrationFilter.h.
|
static |
Get image dimension.
Definition at line 120 of file itkVariationalRegistrationFilter.h.
|
private |
Regularizer for the smoothing of the displacement field.
Definition at line 302 of file itkVariationalRegistrationFilter.h.
|
private |
Modes to control smoothing of the update and deformation fields
Definition at line 308 of file itkVariationalRegistrationFilter.h.
|
private |
Definition at line 309 of file itkVariationalRegistrationFilter.h.
|
private |
Flag to indicate user stop registration request.
Definition at line 305 of file itkVariationalRegistrationFilter.h.