go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
elastix::SplineKernelTransform< TElastix > Class Template Reference

#include <elxSplineKernelTransform.h>

Detailed Description

template<class TElastix>
class elastix::SplineKernelTransform< TElastix >

A transform based on the itk::KernelTransform2.

This transform is a nonrigid transformation, based on thin-plate-spline-like kernels.

The ITK code for this class is largely based on code by Rupert Brooks. For elastix a few modifications were made (making the transform thread safe, and make it support the AdvancedTransform framework).

This nonrigid transformation model allows the user to place control points at application-specific positions, unlike the BSplineTransform, which always uses a regular grid of control points.

NB: in order to use this class for registration, the -fp command line argument is mandatory! It is used to place the fixed image landmarks.

The parameters used in this class are:

Parameters:

Transform: Select this transform as follows:
(Transform "SplineKernelTransform")

SplineKernelType: Select the deformation model, which must be one of { ThinPlateSpline, ThinPlateR2LogRSpline, VolumeSpline, ElasticBodySpline, ElasticBodyReciprocalSpline). In 2D this option is ignored and a ThinPlateSpline will always be used.
example: (SplineKernelType "ElasticBodySpline")
Default: ThinPlateSpline. You cannot specify this parameter for each resolution differently.

SplineRelaxationFactor: make the spline interpolating or approximating. A value of 0.0 gives an interpolating transform. Higher values result in approximating splines.
example: (SplineRelaxationFactor 0.01 )
Default: 0.0. You cannot specify this parameter for each resolution differently.

SplinePoissonRatio: Set the poisson ratio for the ElasticBodySpline and the ElastixBodyReciprocalSpline. For other SplineKernelTypes this parameters is ignored.
example: (SplinePoissonRatio 0.3 )
Default: 0.3. You cannot specify this parameter for each resolution differently.
Valid values are withing -1.0 and 0.5. 0.5 means incompressible. Negative values are a bit odd, but possible. See Wikipedia on PoissonRatio.

Command line arguments:

-fp: a file specifying a set of points that will serve as fixed image landmarks.
example: -fp fixedImagePoints.txt
The fixedImagePoints.txt file should be structured: first line should be "index" or "point", depending if the user supplies voxel indices or real world coordinates. The second line should be the number of points that should be transformed. The third and following lines give the indices or points. The same structure thus as used for transformix.

-mp: an optional file specifying a set of points that will serve as moving image landmarks, used to initialize the transformation.
example: -mp movingImagePoints.txt
The movingImagePoints.txt should be structured like the fixedImagePoints.txt. The moving landmarks should be corresponding to the fixed landmarks. If no file is provided, the transformation is initialized to be the identity, i.e. the moving landmarks are chosen identical to the fixed landmarks.

Transform Parameters:

Transform: Select this transform as follows:
(Transform "SplineKernelTransform")

SplineKernelType: Select the deformation model, which must be one of { ThinPlateSpline, ThinPlateR2LogRSpline, VolumeSpline, ElasticBodySpline, ElasticBodyReciprocalSpline). In 2D this option is ignored and a ThinPlateSpline will always be used.
example: (SplineKernelType "ElasticBodySpline")
*

SplineRelaxationFactor: make the spline interpolating or approximating. A value of 0.0 gives an interpolating transform. Higher values result in approximating splines.
example: (SplineRelaxationFactor 0.01 )
*

SplinePoissonRatio: Set the Poisson ratio for the ElasticBodySpline and the ElastixBodyReciprocalSpline. For other SplineKernelTypes this parameters is ignored.
example: (SplinePoissonRatio 0.3 )
Valid values are withing -1.0 and 0.5. 0.5 means incompressible. Negative values are a bit odd, but possible. See Wikipedia on PoissonRatio.

FixedImageLandmarks: The landmark positions in the fixed image, in world coordinates. Positions written as x1 y1 [z1] x2 y2 [z2] etc.
example: (FixedImageLandmarks 10.0 11.0 12.0 4.0 4.0 4.0 6.0 6.0 6.0 )

Definition at line 115 of file elxSplineKernelTransform.h.

Inheritance diagram for elastix::SplineKernelTransform< TElastix >:
Inheritance graph
[legend]

Public Types

using CombinationTransformType = typename Superclass2::CombinationTransformType
 
using ConstPointer = itk::SmartPointer< const Self >
 
using CoordRepType = ElastixBase::CoordRepType
 
using FixedImageType = typename TElastix::FixedImageType
 
using ITKBaseType = typename Superclass2::ITKBaseType
 
using KernelTransformPointer = typename KernelTransformType::Pointer
 
using KernelTransformType = itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >
 
using MovingImageType = typename TElastix::MovingImageType
 
using ParameterMapType = typename TElastix::ParameterMapType
 
using Pointer = itk::SmartPointer< Self >
 
using PointSetPointer = typename PointSetType::Pointer
 
using PointSetType = typename KernelTransformType::PointSetType
 
using Self = SplineKernelTransform
 
using Superclass1 = itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >
 
using Superclass2 = elx::TransformBase< TElastix >
 
- Public Types inherited from itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >
using ConstPointer = SmartPointer< const Self >
 
using CurrentTransformConstPointer = typename CurrentTransformType::ConstPointer
 
using CurrentTransformInverseTransformBasePointer = typename CurrentTransformType::InverseTransformBasePointer
 
using CurrentTransformInverseTransformBaseType = typename CurrentTransformType::InverseTransformBaseType
 
using CurrentTransformPointer = typename CurrentTransformType::Pointer
 
using CurrentTransformType = Superclass
 
using InitialTransformConstPointer = typename InitialTransformType::ConstPointer
 
using InitialTransformInverseTransformBasePointer = typename InitialTransformType::InverseTransformBasePointer
 
using InitialTransformInverseTransformBaseType = typename InitialTransformType::InverseTransformBaseType
 
using InitialTransformPointer = typename InitialTransformType::Pointer
 
using InitialTransformType = Superclass
 
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedCombinationTransform
 
using Superclass = AdvancedTransform< elx::TransformBase< TElastix >::CoordRepType, NDimensions, NDimensions >
 
using TransformType = typename Superclass::TransformType
 
using TransformTypeConstPointer = typename TransformType::ConstPointer
 
using TransformTypePointer = typename TransformType::Pointer
 
- Public Types inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
using ConstPointer = SmartPointer< const Self >
 
using InternalMatrixType = typename SpatialJacobianType::InternalMatrixType
 
using InverseTransformBaseType = typename Superclass::InverseTransformBaseType
 
using JacobianOfSpatialHessianType = std::vector< SpatialHessianType >
 
using JacobianOfSpatialJacobianType = std::vector< SpatialJacobianType >
 
using MovingImageGradientType = OutputCovariantVectorType
 
using MovingImageGradientValueType = typename MovingImageGradientType::ValueType
 
using NonZeroJacobianIndicesType = std::vector< unsigned long >
 
using Pointer = SmartPointer< Self >
 
using Self = AdvancedTransform
 
using SpatialHessianType = FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension >
 
using SpatialJacobianType = Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension >
 
using Superclass = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformType = Transform< TScalarType, NInputDimensions, NOutputDimensions >
 
using TransformTypeConstPointer = typename TransformType::ConstPointer
 
using TransformTypePointer = typename TransformType::Pointer
 
- Public Types inherited from elastix::TransformBase< TElastix >
using CombinationTransformType = itk::AdvancedCombinationTransform< CoordRepType, Self::FixedImageDimension >
 
using CommandLineArgumentMapType = Configuration ::CommandLineArgumentMapType
 
using CommandLineEntryType = Configuration ::CommandLineEntryType
 
using ComponentDescriptionType = ComponentDatabase::ComponentDescriptionType
 
using CoordRepType = ElastixBase::CoordRepType
 
using DeformationFieldImageType = itk::Image< VectorPixelType, FixedImageDimension >
 
using FixedImageType = typename TElastix::FixedImageType
 
using InitialTransformType = typename CombinationTransformType::InitialTransformType
 
using InputPointType = typename ITKBaseType::InputPointType
 
using ITKBaseType = CombinationTransformType
 
using ITKRegistrationType = typename RegistrationType::ITKBaseType
 
using MovingImageType = typename TElastix::MovingImageType
 
using OptimizerType = typename ITKRegistrationType::OptimizerType
 
using OutputPointType = typename ITKBaseType::OutputPointType
 
using ParameterMapType = typename TElastix::ParameterMapType
 
using ParametersType = itk::OptimizerParameters< ValueType >
 
using ProgressCommandType = elx::ProgressCommand
 
using PtrToCreator = ComponentDatabase::PtrToCreator
 
using RegistrationType = typename ElastixType::RegistrationBaseType
 
using ScalesType = typename OptimizerType::ScalesType
 
using Self = TransformBase
 
using SpatialJacobianDeterminantImageType = itk::Image< float, FixedImageDimension >
 
using SpatialJacobianMatrixImageType = itk::Image< itk::Matrix< float, MovingImageDimension, FixedImageDimension >, FixedImageDimension >
 
using Superclass = BaseComponentSE< TElastix >
 
using ValueType = double
 
using VectorPixelType = itk::Vector< float, FixedImageDimension >
 
- Public Types inherited from elastix::BaseComponentSE< TElastix >
using ConfigurationPointer = Configuration::Pointer
 
using ElastixType = TElastix
 
using RegistrationType = typename ElastixType::RegistrationBaseType
 
using Self = BaseComponentSE
 
using Superclass = BaseComponent
 

Public Member Functions

int BeforeAll () override
 
void BeforeRegistration () override
 
 elxClassNameMacro ("SplineKernelTransform")
 
virtual const char * GetClassName () const
 
 ITK_DISALLOW_COPY_AND_MOVE (SplineKernelTransform)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
 
void ReadFromFile () override
 
- Public Member Functions inherited from itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >
void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
virtual const char * GetClassName () const
 
const FixedParametersType & GetFixedParameters () const override
 
bool GetHasNonZeroSpatialHessian () const override
 
bool GetInverse (Self *inverse) const
 
void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override
 
const TransformTypePointer GetNthTransform (SizeValueType n) const
 
NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const override
 
NumberOfParametersType GetNumberOfParameters () const override
 
SizeValueType GetNumberOfTransforms () const
 
const ParametersType & GetParameters () const override
 
void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const override
 
void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const override
 
TransformCategoryEnum GetTransformCategory () const override
 
virtual bool GetUseAddition () const
 
virtual bool GetUseComposition () const
 
bool HasNonZeroJacobianOfSpatialHessian () const
 
bool IsLinear () const override
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedCombinationTransform)
 
 itkGetModifiableObjectMacro (CurrentTransform, CurrentTransformType)
 
 itkGetModifiableObjectMacro (InitialTransform, InitialTransformType)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
void SetCurrentTransform (CurrentTransformType *_arg)
 
void SetFixedParameters (const FixedParametersType &fixedParam) override
 
void SetInitialTransform (InitialTransformType *_arg)
 
void SetParameters (const ParametersType &param) override
 
void SetParametersByValue (const ParametersType &param) override
 
void SetUseAddition (bool _arg)
 
void SetUseComposition (bool _arg)
 
OutputCovariantVectorType TransformCovariantVector (const InputCovariantVectorType &) const override
 
OutputPointType TransformPoint (const InputPointType &point) const override
 
OutputVectorType TransformVector (const InputVectorType &) const override
 
OutputVnlVectorType TransformVector (const InputVnlVectorType &) const override
 
- Public Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
void ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override
 
virtual void EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
virtual const char * GetClassName () const
 
virtual bool GetHasNonZeroJacobianOfSpatialHessian () const
 
virtual bool GetHasNonZeroSpatialHessian () const
 
virtual void GetJacobian (const InputPointType &inputPoint, JacobianType &j, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual void GetJacobianOfSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const =0
 
virtual NumberOfParametersType GetNumberOfNonZeroJacobianIndices () const
 
virtual void GetSpatialHessian (const InputPointType &inputPoint, SpatialHessianType &sh) const =0
 
virtual void GetSpatialJacobian (const InputPointType &inputPoint, SpatialJacobianType &sj) const =0
 
 ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform)
 
 itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions)
 
 itkStaticConstMacro (OutputSpaceDimension, unsigned int, NOutputDimensions)
 
- Public Member Functions inherited from elastix::TransformBase< TElastix >
int BeforeAllTransformix ()
 
void ComputeAndWriteSpatialJacobianDeterminantImage () const
 
void ComputeAndWriteSpatialJacobianMatrixImage () const
 
SpatialJacobianDeterminantImageType::Pointer ComputeSpatialJacobianDeterminantImage () const
 
SpatialJacobianMatrixImageType::Pointer ComputeSpatialJacobianMatrixImage () const
 
void CreateTransformParametersMap (const ParametersType &param, ParameterMapType &parameterMap, const bool includeDerivedTransformParameters=true) const
 
ITKBaseTypeGetAsITKBaseType ()
 
const ITKBaseTypeGetAsITKBaseType () const
 
virtual const char * GetClassName () const
 
 ITK_DISALLOW_COPY_AND_MOVE (TransformBase)
 
 itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension)
 
 itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension)
 
virtual void ReadFromFile ()
 
void ReadInitialTransformFromFile (const char *transformParameterFileName)
 
void SetFinalParameters ()
 
void SetInitialTransform (InitialTransformType *_arg)
 
void SetReadWriteTransformParameters (const bool _arg)
 
void SetTransformParametersFileName (const char *filename)
 
template<typename TMesh >
TMesh::Pointer TransformMesh (const TMesh &mesh) const
 
void TransformPoints () const
 
void WriteToFile (xl::xoutsimple &transformationParameterInfo, const ParametersType &param) const
 
- Public Member Functions inherited from elastix::BaseComponentSE< TElastix >
void AddTargetCellToIterationInfo (const char *const name)
 
ConfigurationGetConfiguration () const
 
ElastixTypeGetElastix () const
 
xl::xoutbaseGetIterationInfoAt (const char *const name)
 
RegistrationTypeGetRegistration () const
 
 ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE)
 
int RemoveTargetCellFromIterationInfo (const char *const name)
 
void SetConfiguration (Configuration *_arg)
 
void SetElastix (ElastixType *_arg)
 
- Public Member Functions inherited from elastix::BaseComponent
virtual void AfterEachIteration ()
 
virtual void AfterEachIterationBase ()
 
virtual void AfterEachResolution ()
 
virtual void AfterEachResolutionBase ()
 
virtual void AfterRegistration ()
 
virtual void AfterRegistrationBase ()
 
virtual int BeforeAll ()
 
virtual int BeforeAllBase ()
 
virtual void BeforeEachResolution ()
 
virtual void BeforeEachResolutionBase ()
 
virtual void BeforeRegistration ()
 
virtual void BeforeRegistrationBase ()
 
virtual const char * elxGetClassName () const
 
const char * GetComponentLabel () const
 
 ITK_DISALLOW_COPY_AND_MOVE (BaseComponent)
 
 itkTypeMacroNoParent (BaseComponent)
 
void SetComponentLabel (const char *label, unsigned int idx)
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >
static Pointer New ()
 
- Static Public Member Functions inherited from elastix::BaseComponent
template<typename TBaseComponent >
static auto AsITKBaseType (TBaseComponent *const baseComponent) -> decltype(baseComponent->GetAsITKBaseType())
 
static void InitializeElastixExecutable ()
 
static bool IsElastixLibrary ()
 

Protected Types

using EBKernelTransformType = itk::ElasticBodySplineKernelTransform2< CoordRepType, Self::SpaceDimension >
 
using EBRKernelTransformType = itk::ElasticBodyReciprocalSplineKernelTransform2< CoordRepType, Self::SpaceDimension >
 
using TPKernelTransformType = itk::ThinPlateSplineKernelTransform2< CoordRepType, Self::SpaceDimension >
 
using TPRKernelTransformType = itk::ThinPlateR2LogRSplineKernelTransform2< CoordRepType, Self::SpaceDimension >
 
using VKernelTransformType = itk::VolumeSplineKernelTransform2< CoordRepType, Self::SpaceDimension >
 

Protected Member Functions

virtual void DetermineSourceLandmarks ()
 
virtual bool DetermineTargetLandmarks ()
 
void ReadLandmarkFile (const std::string &filename, PointSetPointer &landmarkPointSet, const bool landmarksInFixedImage)
 
virtual bool SetKernelType (const std::string &kernelType)
 
 SplineKernelTransform ()
 
 ~SplineKernelTransform () override=default
 
- Protected Member Functions inherited from itk::AdvancedCombinationTransform< elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension >
 AdvancedCombinationTransform ()
 
void EvaluateJacobianWithImageGradientProductNoCurrentTransform (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
void EvaluateJacobianWithImageGradientProductNoInitialTransform (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
void EvaluateJacobianWithImageGradientProductUseAddition (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
void EvaluateJacobianWithImageGradientProductUseComposition (const InputPointType &, const MovingImageGradientType &, DerivativeType &, NonZeroJacobianIndicesType &) const
 
void GetJacobianNoCurrentTransform (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
void GetJacobianNoInitialTransform (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
void GetJacobianOfSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianNoInitialTransform (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianNoInitialTransform (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianUseAddition (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianUseAddition (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianUseComposition (const InputPointType &inputPoint, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialHessianUseComposition (const InputPointType &inputPoint, SpatialHessianType &sh, JacobianOfSpatialHessianType &jsh, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianUseAddition (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianUseAddition (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianUseComposition (const InputPointType &inputPoint, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianOfSpatialJacobianUseComposition (const InputPointType &inputPoint, SpatialJacobianType &sj, JacobianOfSpatialJacobianType &jsj, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const
 
void GetJacobianUseAddition (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
void GetJacobianUseComposition (const InputPointType &, JacobianType &, NonZeroJacobianIndicesType &) const
 
void GetSpatialHessianNoCurrentTransform (const InputPointType &inputPoint, SpatialHessianType &sh) const
 
void GetSpatialHessianNoInitialTransform (const InputPointType &inputPoint, SpatialHessianType &sh) const
 
void GetSpatialHessianUseAddition (const InputPointType &inputPoint, SpatialHessianType &sh) const
 
void GetSpatialHessianUseComposition (const InputPointType &inputPoint, SpatialHessianType &sh) const
 
void GetSpatialJacobianNoCurrentTransform (const InputPointType &inputPoint, SpatialJacobianType &sj) const
 
void GetSpatialJacobianNoInitialTransform (const InputPointType &inputPoint, SpatialJacobianType &sj) const
 
void GetSpatialJacobianUseAddition (const InputPointType &inputPoint, SpatialJacobianType &sj) const
 
void GetSpatialJacobianUseComposition (const InputPointType &inputPoint, SpatialJacobianType &sj) const
 
OutputPointType TransformPointNoCurrentTransform (const InputPointType &point) const
 
OutputPointType TransformPointNoInitialTransform (const InputPointType &point) const
 
OutputPointType TransformPointUseAddition (const InputPointType &point) const
 
OutputPointType TransformPointUseComposition (const InputPointType &point) const
 
void UpdateCombinationMethod ()
 
 ~AdvancedCombinationTransform () override=default
 
- Protected Member Functions inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
 AdvancedTransform ()=default
 
 ~AdvancedTransform () override=default
 
- Protected Member Functions inherited from elastix::TransformBase< TElastix >
void AutomaticScalesEstimation (ScalesType &scales) const
 
void AutomaticScalesEstimationStackTransform (const unsigned int numSubTransforms, ScalesType &scales) const
 
bool HasITKTransformParameters () const
 
 TransformBase ()=default
 
 ~TransformBase () override=default
 
- Protected Member Functions inherited from elastix::BaseComponentSE< TElastix >
 BaseComponentSE ()=default
 
 ~BaseComponentSE () override=default
 
- Protected Member Functions inherited from elastix::BaseComponent
 BaseComponent ()=default
 
virtual ~BaseComponent ()=default
 

Protected Attributes

KernelTransformPointer m_KernelTransform
 
- Protected Attributes inherited from itk::AdvancedTransform< TScalarType, NInputDimensions, NOutputDimensions >
bool m_HasNonZeroJacobianOfSpatialHessian { true }
 
bool m_HasNonZeroSpatialHessian { true }
 
- Protected Attributes inherited from elastix::BaseComponentSE< TElastix >
ConfigurationPointer m_Configuration {}
 
itk::WeakPointer< TElastix > m_Elastix {}
 
RegistrationTypem_Registration {}
 

Private Member Functions

ParameterMapType CreateDerivedTransformParametersMap () const override
 

Private Attributes

 elxOverrideGetSelfMacro
 
std::string m_SplineKernelType
 

Member Typedef Documentation

◆ CombinationTransformType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::CombinationTransformType = typename Superclass2::CombinationTransformType

Definition at line 174 of file elxSplineKernelTransform.h.

◆ ConstPointer

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 135 of file elxSplineKernelTransform.h.

◆ CoordRepType

template<class TElastix >
using elastix::TransformBase< TElastix >::CoordRepType = ElastixBase::CoordRepType

Elastix typedef's.

Definition at line 153 of file elxTransformBase.h.

◆ EBKernelTransformType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::EBKernelTransformType = itk::ElasticBodySplineKernelTransform2<CoordRepType, Self::SpaceDimension>
protected

Definition at line 210 of file elxSplineKernelTransform.h.

◆ EBRKernelTransformType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::EBRKernelTransformType = itk::ElasticBodyReciprocalSplineKernelTransform2<CoordRepType, Self::SpaceDimension>
protected

Definition at line 211 of file elxSplineKernelTransform.h.

◆ FixedImageType

template<class TElastix >
using elastix::TransformBase< TElastix >::FixedImageType = typename TElastix::FixedImageType

Definition at line 154 of file elxTransformBase.h.

◆ ITKBaseType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType

Definition at line 173 of file elxSplineKernelTransform.h.

◆ KernelTransformPointer

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::KernelTransformPointer = typename KernelTransformType::Pointer

Extra typedefs

Definition at line 177 of file elxSplineKernelTransform.h.

◆ KernelTransformType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::KernelTransformType = itk::KernelTransform2<typename elx::TransformBase<TElastix>::CoordRepType, elx::TransformBase<TElastix>::FixedImageDimension>

The ITK-class that provides most of the functionality, and that is set as the "CurrentTransform" in the CombinationTransform.

Definition at line 132 of file elxSplineKernelTransform.h.

◆ MovingImageType

template<class TElastix >
using elastix::TransformBase< TElastix >::MovingImageType = typename TElastix::MovingImageType

Definition at line 155 of file elxTransformBase.h.

◆ ParameterMapType

template<class TElastix >
using elastix::TransformBase< TElastix >::ParameterMapType = typename TElastix::ParameterMapType

Typedef that is used in the elastix dll version.

Definition at line 199 of file elxTransformBase.h.

◆ Pointer

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::Pointer = itk::SmartPointer<Self>

Definition at line 134 of file elxSplineKernelTransform.h.

◆ PointSetPointer

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::PointSetPointer = typename PointSetType::Pointer

Definition at line 179 of file elxSplineKernelTransform.h.

◆ PointSetType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::PointSetType = typename KernelTransformType::PointSetType

Definition at line 178 of file elxSplineKernelTransform.h.

◆ Self

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::Self = SplineKernelTransform

Standard ITK-stuff.

Definition at line 124 of file elxSplineKernelTransform.h.

◆ Superclass1

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::Superclass1 = itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType, elx::TransformBase<TElastix>::FixedImageDimension>

Definition at line 125 of file elxSplineKernelTransform.h.

◆ Superclass2

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::Superclass2 = elx::TransformBase<TElastix>

Definition at line 127 of file elxSplineKernelTransform.h.

◆ TPKernelTransformType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::TPKernelTransformType = itk::ThinPlateSplineKernelTransform2<CoordRepType, Self::SpaceDimension>
protected

Definition at line 207 of file elxSplineKernelTransform.h.

◆ TPRKernelTransformType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::TPRKernelTransformType = itk::ThinPlateR2LogRSplineKernelTransform2<CoordRepType, Self::SpaceDimension>
protected

Definition at line 208 of file elxSplineKernelTransform.h.

◆ VKernelTransformType

template<class TElastix >
using elastix::SplineKernelTransform< TElastix >::VKernelTransformType = itk::VolumeSplineKernelTransform2<CoordRepType, Self::SpaceDimension>
protected

Definition at line 209 of file elxSplineKernelTransform.h.

Constructor & Destructor Documentation

◆ SplineKernelTransform()

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::SplineKernelTransform ( )
protected

The constructor.

◆ ~SplineKernelTransform()

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::~SplineKernelTransform ( )
overrideprotecteddefault

The destructor.

Member Function Documentation

◆ BeforeAll()

template<class TElastix >
int elastix::SplineKernelTransform< TElastix >::BeforeAll ( )
overridevirtual

Execute stuff before everything else:

  • Check if -fp command line argument was given
  • Check if -mp command line argument was given

Reimplemented from elastix::BaseComponent.

◆ BeforeRegistration()

template<class TElastix >
void elastix::SplineKernelTransform< TElastix >::BeforeRegistration ( )
overridevirtual

Execute stuff before the actual registration:

  • Setup transform
  • Determine fixed image (source) landmarks
  • Determine moving image (target) landmarks
  • Call InitializeTransform.

Reimplemented from elastix::BaseComponent.

◆ CreateDerivedTransformParametersMap()

template<class TElastix >
ParameterMapType elastix::SplineKernelTransform< TElastix >::CreateDerivedTransformParametersMap ( ) const
overrideprivatevirtual

Creates a map of the parameters specific for this (derived) transform type.

Implements elastix::TransformBase< TElastix >.

◆ DetermineSourceLandmarks()

template<class TElastix >
virtual void elastix::SplineKernelTransform< TElastix >::DetermineSourceLandmarks ( )
protectedvirtual

Read source landmarks from fp file

  • Try reading -fp file

◆ DetermineTargetLandmarks()

template<class TElastix >
virtual bool elastix::SplineKernelTransform< TElastix >::DetermineTargetLandmarks ( )
protectedvirtual

Read target landmarks from mp file or load identity.

  • Try reading -mp file
  • If no -mp file was given, place landmarks as identity.

◆ elxClassNameMacro()

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::elxClassNameMacro ( "SplineKernelTransform< TElastix >"  )

Name of this class. Use this name in the parameter file to select this specific transform.
example: (Transform "SplineKernelTransform")

◆ GetClassName()

template<class TElastix >
virtual const char * elastix::SplineKernelTransform< TElastix >::GetClassName ( ) const
virtual

Run-time type information (and related methods).

Reimplemented from elastix::TransformBase< TElastix >.

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::ITK_DISALLOW_COPY_AND_MOVE ( SplineKernelTransform< TElastix >  )

◆ itkStaticConstMacro()

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::itkStaticConstMacro ( SpaceDimension  ,
unsigned int  ,
Superclass2::FixedImageDimension   
)

Dimension of the domain space.

◆ New()

template<class TElastix >
static Pointer elastix::SplineKernelTransform< TElastix >::New ( )
static

Method for creation through the object factory.

◆ ReadFromFile()

template<class TElastix >
void elastix::SplineKernelTransform< TElastix >::ReadFromFile ( )
overridevirtual

Function to read transform-parameters from a file.

Reimplemented from elastix::TransformBase< TElastix >.

◆ ReadLandmarkFile()

template<class TElastix >
void elastix::SplineKernelTransform< TElastix >::ReadLandmarkFile ( const std::string &  filename,
PointSetPointer landmarkPointSet,
const bool  landmarksInFixedImage 
)
protected

General function to read all landmarks.

◆ SetKernelType()

template<class TElastix >
virtual bool elastix::SplineKernelTransform< TElastix >::SetKernelType ( const std::string &  kernelType)
protectedvirtual

Create an instance of a kernel transform. Returns false if the kernelType is unknown.

Field Documentation

◆ elxOverrideGetSelfMacro

template<class TElastix >
elastix::SplineKernelTransform< TElastix >::elxOverrideGetSelfMacro
private

Definition at line 240 of file elxSplineKernelTransform.h.

◆ m_KernelTransform

template<class TElastix >
KernelTransformPointer elastix::SplineKernelTransform< TElastix >::m_KernelTransform
protected

The itk kernel transform.

Definition at line 237 of file elxSplineKernelTransform.h.

◆ m_SplineKernelType

template<class TElastix >
std::string elastix::SplineKernelTransform< TElastix >::m_SplineKernelType
private

Definition at line 246 of file elxSplineKernelTransform.h.



Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo