ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkVariationalDiffeomorphicRegistrationFilter.h>
Diffeomorphic deformable registration of two images using static velocity fields.
VariationalDiffeomorphicRegistrationFilter is derived from VariationalRegistrationFilter and aims to minimize the functional
with and is a static velocity field. Let denote the force term corresponding to the similarity measure and denote the linear differential operator associated with the regularization term , VariationalDiffeomorphicRegistrationFilter implements the following iterative scheme to compute (and ):
The force term is implemented in a subclass of VariationalRegistrationFunction. The computation of the regularization with is implemented in a subclass of VariationalRegistrationRegularizer. The exponentiation of the velocity field is done using the ExponentialDisplacementFieldImageFilter.
You can set SmoothUpdateFieldOn() to smooth the velocity field before exponentiation.
For details see:
Definition at line 80 of file itkVariationalDiffeomorphicRegistrationFilter.h.
Public Types | |
using | ConstPointer = SmartPointer< const Self > |
using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
using | DisplacementFieldType = TDisplacementField |
using | FixedImageConstPointer = typename FixedImageType::ConstPointer |
using | FixedImagePointer = typename FixedImageType::Pointer |
using | FixedImageType = TFixedImage |
using | MovingImageConstPointer = typename MovingImageType::ConstPointer |
using | MovingImagePointer = typename MovingImageType::Pointer |
using | MovingImageType = TMovingImage |
using | OutputImageType = typename Superclass::OutputImageType |
using | Pointer = SmartPointer< Self > |
using | RegistrationFunctionType = typename Superclass::RegistrationFunctionType |
using | RegularizerType = typename Superclass::RegularizerType |
using | Self = VariationalDiffeomorphicRegistrationFilter |
using | Superclass = VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > |
using | TimeStepType = typename Superclass::TimeStepType |
Public Types inherited from itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | DefaultRegistrationFunctionType = VariationalRegistrationDemonsFunction< FixedImageType, MovingImageType, DisplacementFieldType > |
using | DefaultRegularizerType = VariationalRegistrationDiffusionRegularizer< DisplacementFieldType > |
using | DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
using | DisplacementFieldType = TDisplacementField |
using | FixedImageConstPointer = typename FixedImageType::ConstPointer |
using | FixedImagePointer = typename FixedImageType::Pointer |
using | FixedImageType = TFixedImage |
using | MaskImageConstPointer = typename MaskImageType::ConstPointer |
using | MaskImagePixelType = unsigned char |
using | MaskImagePointer = typename MaskImageType::Pointer |
using | MaskImageType = Image< MaskImagePixelType, ImageDimension > |
using | MovingImageConstPointer = typename MovingImageType::ConstPointer |
using | MovingImagePointer = typename MovingImageType::Pointer |
using | MovingImageType = TMovingImage |
using | OutputImageType = typename Superclass::OutputImageType |
using | Pointer = SmartPointer< Self > |
using | RegistrationFunctionType = VariationalRegistrationFunction< FixedImageType, MovingImageType, DisplacementFieldType > |
using | RegularizerPointer = typename RegularizerType::Pointer |
using | RegularizerType = VariationalRegistrationRegularizer< DisplacementFieldType > |
using | Self = VariationalRegistrationFilter |
using | Superclass = DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > |
using | TimeStepType = typename Superclass::TimeStepType |
Public Types inherited from itk::DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | FiniteDifferenceFunctionType = typename Superclass::FiniteDifferenceFunctionType |
using | InputImageType = typename Superclass::InputImageType |
using | OutputImageType = typename Superclass::OutputImageType |
using | PixelType = typename Superclass::PixelType |
using | Pointer = SmartPointer< Self > |
using | Self = DenseFiniteDifferenceImageFilter |
using | Superclass = FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > |
using | TimeStepType = typename Superclass::TimeStepType |
using | UpdateBufferType = OutputImageType |
Public Types inherited from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | FiniteDifferenceFunctionType = FiniteDifferenceFunction< TDisplacementField > |
using | InputImageType = TDisplacementField |
using | InputPixelType = typename TDisplacementField::PixelType |
using | InputPixelValueType = typename NumericTraits< InputPixelType >::ValueType |
using | NeighborhoodScalesType = typename FiniteDifferenceFunctionType::NeighborhoodScalesType |
using | OutputImageType = TDisplacementField |
using | OutputPixelType = typename TDisplacementField::PixelType |
using | OutputPixelValueType = typename NumericTraits< OutputPixelType >::ValueType |
using | PixelType = OutputPixelType |
using | Pointer = SmartPointer< Self > |
using | RadiusType = typename FiniteDifferenceFunctionType::RadiusType |
using | Self = FiniteDifferenceImageFilter |
using | Superclass = InPlaceImageFilter< TDisplacementField, TDisplacementField > |
using | TimeStepType = typename FiniteDifferenceFunctionType::TimeStepType |
Public Types inherited from itk::InPlaceImageFilter< TDisplacementField, TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TDisplacementField |
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
using | OutputImagePointer = typename Superclass::OutputImagePointer |
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
using | OutputImageType = typename Superclass::OutputImageType |
using | Pointer = SmartPointer< Self > |
using | Self = InPlaceImageFilter |
using | Superclass = ImageToImageFilter< TDisplacementField, TDisplacementField > |
Public Types inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TDisplacementField |
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
using | Pointer = SmartPointer< Self > |
using | Self = ImageToImageFilter |
using | Superclass = ImageSource< TDisplacementField > |
Public Types inherited from itk::ImageSource< TDisplacementField > | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArraySizeType = Superclass::DataObjectPointerArraySizeType |
using | OutputImagePixelType = typename OutputImageType::PixelType |
using | OutputImagePointer = typename OutputImageType::Pointer |
using | OutputImageRegionType = typename OutputImageType::RegionType |
using | OutputImageType = TDisplacementField |
using | Pointer = SmartPointer< Self > |
using | Self = ImageSource |
using | Superclass = ProcessObject |
Public Types inherited from itk::ProcessObject | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
using | MultiThreaderType = MultiThreaderBase |
using | NameArray = std::vector< DataObjectIdentifierType > |
using | Pointer = SmartPointer< Self > |
using | Self = ProcessObject |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > | |
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 constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > | |
static constexpr unsigned int | ImageDimension |
Static Public Attributes inherited from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > | |
static constexpr unsigned int | ImageDimension |
Static Public Attributes inherited from itk::InPlaceImageFilter< TDisplacementField, TDisplacementField > | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
static constexpr unsigned int | InputImageDimension |
static constexpr unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageSource< TDisplacementField > | |
static constexpr unsigned int | OutputImageDimension |
Protected Types | |
using | FieldExponentiatorPointer = typename FieldExponentiatorType::Pointer |
using | FieldExponentiatorType = itk::ExponentialDisplacementFieldImageFilter< DisplacementFieldType, DisplacementFieldType > |
Protected Types inherited from itk::DenseFiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > | |
using | ThreadRegionType = typename UpdateBufferType::RegionType |
Protected Types inherited from itk::ImageToImageFilter< TDisplacementField, TDisplacementField > | |
using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
Private Attributes | |
DisplacementFieldPointer | m_DisplacementField |
FieldExponentiatorPointer | m_Exponentiator |
unsigned int | m_NumberOfExponentiatorIterations |
Additional Inherited Members | |
Static Protected Member Functions inherited from itk::ImageSource< TDisplacementField > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
Protected Attributes inherited from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField > | |
IdentifierType | m_ElapsedIterations |
bool | m_IsInitialized |
bool | m_ManualReinitialization |
double | m_MaximumRMSError |
IdentifierType | m_NumberOfIterations |
double | m_RMSChange |
Protected Attributes inherited from itk::ImageSource< TDisplacementField > | |
bool | m_DynamicMultiThreading |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime |
bool | m_Updating |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::ConstPointer = SmartPointer<const Self> |
Definition at line 91 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldPointer = typename DisplacementFieldType::Pointer |
Definition at line 114 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::DisplacementFieldType = TDisplacementField |
Deformation field type.
Definition at line 113 of file itkVariationalDiffeomorphicRegistrationFilter.h.
|
protected |
Typename for the exponentiator.
Definition at line 171 of file itkVariationalDiffeomorphicRegistrationFilter.h.
|
protected |
Exponential field calculator type.
Definition at line 168 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::FixedImageConstPointer = typename FixedImageType::ConstPointer |
Definition at line 105 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::FixedImagePointer = typename FixedImageType::Pointer |
Definition at line 104 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::FixedImageType = TFixedImage |
FixedImage image type.
Definition at line 103 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MovingImageConstPointer = typename MovingImageType::ConstPointer |
Definition at line 110 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MovingImagePointer = typename MovingImageType::Pointer |
Definition at line 109 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::MovingImageType = TMovingImage |
MovingImage image type.
Definition at line 108 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::OutputImageType = typename Superclass::OutputImageType |
Types inherited from the superclass
Definition at line 117 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::Pointer = SmartPointer<Self> |
Definition at line 90 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::RegistrationFunctionType = typename Superclass::RegistrationFunctionType |
VariationalRegistrationFunction type.
Definition at line 120 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::RegularizerType = typename Superclass::RegularizerType |
Regularizer type.
Definition at line 123 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::Self = VariationalDiffeomorphicRegistrationFilter |
Standard class type alias
Definition at line 87 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::Superclass = VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField > |
Definition at line 89 of file itkVariationalDiffeomorphicRegistrationFilter.h.
using itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::TimeStepType = typename Superclass::TimeStepType |
The value type of a time step. Inherited from the superclass.
Definition at line 126 of file itkVariationalDiffeomorphicRegistrationFilter.h.
|
protected |
|
inlineoverrideprotected |
Definition at line 151 of file itkVariationalDiffeomorphicRegistrationFilter.h.
|
overrideprotected |
Apply update.
|
protectedvirtual |
Calculates the deformation field by calculating the exponential of the velocity field.
|
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 >.
|
inlineoverridevirtual |
Get output deformation field. Returns the displacement field of the current transformation.
Reimplemented from itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
Definition at line 138 of file itkVariationalDiffeomorphicRegistrationFilter.h.
|
inlineprotectedvirtual |
Get the exponentiator used to compute a displacement from a velocity field.
Definition at line 174 of file itkVariationalDiffeomorphicRegistrationFilter.h.
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
Reimplemented in itk::VariationalSymmetricDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
virtual |
Get the desired number of iterations for the exponentiator.
|
inlinevirtual |
Get output velocity field.
Definition at line 146 of file itkVariationalDiffeomorphicRegistrationFilter.h.
References itk::ImageSource< TDisplacementField >::GetOutput().
|
overrideprotectedvirtual |
This method is called before iterating the solution.
Reimplemented from itk::FiniteDifferenceImageFilter< TDisplacementField, TDisplacementField >.
Reimplemented in itk::VariationalSymmetricDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
static |
Method for creation through the object factory.
|
overrideprotectedvirtual |
Print information about the filter.
Reimplemented from itk::ProcessObject.
Reimplemented in itk::VariationalSymmetricDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
overridevirtual |
Set initial deformation field.
Reimplemented from itk::VariationalRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >.
|
inlinevirtual |
Set initial deformation field.
Definition at line 142 of file itkVariationalDiffeomorphicRegistrationFilter.h.
References itk::ImageToImageFilter< TDisplacementField, TDisplacementField >::SetInput().
|
virtual |
Set the desired number of iterations for the exponentiator.
|
static |
Get image dimension.
Definition at line 100 of file itkVariationalDiffeomorphicRegistrationFilter.h.
|
private |
Definition at line 180 of file itkVariationalDiffeomorphicRegistrationFilter.h.
Referenced by itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::GetDisplacementField().
|
private |
The deformation field.
Definition at line 179 of file itkVariationalDiffeomorphicRegistrationFilter.h.
Referenced by itk::VariationalDiffeomorphicRegistrationFilter< TFixedImage, TMovingImage, TDisplacementField >::GetExponentiator().
|
private |
Number of iterations for exponentiation (self composing) of velocity field.
Definition at line 183 of file itkVariationalDiffeomorphicRegistrationFilter.h.