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 Member Functions | Private Types | Private Member Functions | Private Attributes
elastix::EulerStackTransform< TElastix > Class Template Reference

#include <elxEulerStackTransform.h>

Detailed Description

template<class TElastix>
class elastix::EulerStackTransform< TElastix >

A stack transform based on the itk EulerTransforms.

This transform is a rigid body transformation. Calls to TransformPoint and GetJacobian are redirected to the appropriate sub transform based on the last dimension (time) index.

This transform uses the size, spacing and origin of the last dimension of the fixed image to set the number of sub transforms, the origin of the first transform and the spacing between the transforms.

The parameters used in this class are:

Parameters:

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

Scales: the scale factor between the rotations and translations, used in the optimizer.
example: (Scales 200000.0)
example: (Scales 100000.0 60000.0 ... 80000.0)
If only one argument is given, that factor is used for the rotations. If more than one argument is given, then the number of arguments should be equal to the number of parameters: for each parameter its scale factor. If this parameter option is not used, by default the rotations are scaled by a factor of 100000.0. See also the AutomaticScalesEstimation parameter.

AutomaticScalesEstimation: if this parameter is set to "true" the Scales parameter is ignored and the scales are determined automatically.
example: ( AutomaticScalesEstimation "true" )
Default: "false" (for backwards compatibility). Recommended: "true".

CenterOfRotation: an index around which the image is rotated.
example: (CenterOfRotation 128 128)

The transform parameters necessary for transformix, additionally defined by this class, are:

Transform Parameters:

CenterOfRotation: stores the center of rotation as an index.
example: (CenterOfRotation 128 128) deprecated! From elastix version 3.402 this is changed to CenterOfRotationPoint!

CenterOfRotationPoint: stores the center of rotation, expressed in world coordinates.
example: (CenterOfRotationPoint 10.555 6.666)

StackSpacing: stores the spacing between the sub transforms.
exanoke: (StackSpacing 1.0)

StackOrigin: stores the origin of the first sub transform.
exanoke: (StackOrigin 0.0)

NumberOfSubTransforms: stores the number of sub transforms.
exanoke: (NumberOfSubTransforms 10)

Todo:

It is unsure what happens when one of the image dimensions has length 1.

The center of rotation point is not transformed with the initial transform yet.

Definition at line 81 of file elxEulerStackTransform.h.

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

Public Types

using CombinationTransformType = typename Superclass2::CombinationTransformType
 
using ConstPointer = itk::SmartPointer< const Self >
 
using ContinuousIndexType = typename itk::ContinuousIndex< CoordRepType, SpaceDimension >
 
using CoordRepType = ElastixBase::CoordRepType
 
using DirectionType = typename FixedImageType::DirectionType
 
using EulerTransformPointer = typename EulerTransformType::Pointer
 
using EulerTransformType = itk::EulerTransform< typename elx::TransformBase< TElastix >::CoordRepType, Self::SpaceDimension >
 
using FixedImageType = typename TElastix::FixedImageType
 
using IndexType = typename FixedImageType::IndexType
 
using InputPointType = typename EulerTransformType::InputPointType
 
using ITKBaseType = typename Superclass2::ITKBaseType
 
using MovingImageType = typename TElastix::MovingImageType
 
using ParameterMapType = typename TElastix::ParameterMapType
 
using Pointer = itk::SmartPointer< Self >
 
using PointType = typename FixedImageType::PointType
 
using ReducedDimensionContinuousIndexType = typename itk::ContinuousIndex< CoordRepType, ReducedSpaceDimension >
 
using ReducedDimensionDirectionType = typename ReducedDimensionImageType::DirectionType
 
using ReducedDimensionEulerTransformPointer = typename ReducedDimensionEulerTransformType::Pointer
 
using ReducedDimensionEulerTransformType = itk::EulerTransform< typename elx::TransformBase< TElastix >::CoordRepType, Self::ReducedSpaceDimension >
 
using ReducedDimensionImageType = itk::Image< PixelType, Self::ReducedSpaceDimension >
 
using ReducedDimensionIndexType = typename ReducedDimensionRegionType::IndexType
 
using ReducedDimensionInputPointType = typename ReducedDimensionEulerTransformType::InputPointType
 
using ReducedDimensionOriginType = typename ReducedDimensionImageType::PointType
 
using ReducedDimensionOutputVectorType = typename ReducedDimensionEulerTransformType::OutputVectorType
 
using ReducedDimensionPointType = typename ReducedDimensionImageType::PointType
 
using ReducedDimensionRegionType = itk::ImageRegion< Self::ReducedSpaceDimension >
 
using ReducedDimensionSizeType = typename ReducedDimensionImageType::SizeType
 
using ReducedDimensionSpacingType = typename ReducedDimensionImageType::SpacingType
 
using RegionType = typename FixedImageType::RegionType
 
using ScalesType = typename OptimizerType::ScalesType
 
using Self = EulerStackTransform
 
using SizeType = typename FixedImageType::SizeType
 
using SpacingType = typename FixedImageType::SpacingType
 
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 ("EulerStackTransform")
 
virtual const char * GetClassName () const
 
virtual void InitialTransformCenter (ReducedDimensionInputPointType &point)
 
 ITK_DISALLOW_COPY_AND_MOVE (EulerStackTransform)
 
 itkStaticConstMacro (ReducedSpaceDimension, unsigned int, Superclass2::FixedImageDimension - 1)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
 
void ReadFromFile () override
 
virtual void SetScales ()
 
- 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 Member Functions

 EulerStackTransform ()
 
virtual bool ReadCenterOfRotationPoint (ReducedDimensionInputPointType &rotationPoint) const
 
 ~EulerStackTransform () 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
 

Private Types

using StackTransformType = itk::EulerStackTransform< SpaceDimension >
 

Private Member Functions

ParameterMapType CreateDerivedTransformParametersMap () const override
 
unsigned int InitializeEulerTransform ()
 
void InitializeTransform ()
 

Private Attributes

 elxOverrideGetSelfMacro
 
ReducedDimensionEulerTransformPointer m_DummySubTransform
 
unsigned int m_NumberOfSubTransforms
 
double m_StackOrigin
 
double m_StackSpacing
 
const StackTransformType::Pointer m_StackTransform { StackTransformType::New() }
 

Additional Inherited Members

- 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 {}
 

Member Typedef Documentation

◆ CombinationTransformType

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

Definition at line 141 of file elxEulerStackTransform.h.

◆ ConstPointer

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

Definition at line 95 of file elxEulerStackTransform.h.

◆ ContinuousIndexType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ContinuousIndexType = typename itk::ContinuousIndex<CoordRepType, SpaceDimension>

Definition at line 165 of file elxEulerStackTransform.h.

◆ CoordRepType

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

Elastix typedef's.

Definition at line 153 of file elxTransformBase.h.

◆ DirectionType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::DirectionType = typename FixedImageType::DirectionType

Definition at line 163 of file elxEulerStackTransform.h.

◆ EulerTransformPointer

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::EulerTransformPointer = typename EulerTransformType::Pointer

Definition at line 118 of file elxEulerStackTransform.h.

◆ EulerTransformType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::EulerTransformType = itk::EulerTransform<typename elx::TransformBase<TElastix>::CoordRepType, Self::SpaceDimension>

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

Definition at line 116 of file elxEulerStackTransform.h.

◆ FixedImageType

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

Definition at line 154 of file elxTransformBase.h.

◆ IndexType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::IndexType = typename FixedImageType::IndexType

Other typedef's.

Definition at line 158 of file elxEulerStackTransform.h.

◆ InputPointType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::InputPointType = typename EulerTransformType::InputPointType

Definition at line 119 of file elxEulerStackTransform.h.

◆ ITKBaseType

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

Definition at line 140 of file elxEulerStackTransform.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::EulerStackTransform< TElastix >::Pointer = itk::SmartPointer<Self>

Definition at line 94 of file elxEulerStackTransform.h.

◆ PointType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::PointType = typename FixedImageType::PointType

Definition at line 160 of file elxEulerStackTransform.h.

◆ ReducedDimensionContinuousIndexType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionContinuousIndexType = typename itk::ContinuousIndex<CoordRepType, ReducedSpaceDimension>

Definition at line 164 of file elxEulerStackTransform.h.

◆ ReducedDimensionDirectionType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionDirectionType = typename ReducedDimensionImageType::DirectionType

Definition at line 151 of file elxEulerStackTransform.h.

◆ ReducedDimensionEulerTransformPointer

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionEulerTransformPointer = typename ReducedDimensionEulerTransformType::Pointer

Definition at line 124 of file elxEulerStackTransform.h.

◆ ReducedDimensionEulerTransformType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionEulerTransformType = itk::EulerTransform<typename elx::TransformBase<TElastix>::CoordRepType, Self::ReducedSpaceDimension>

The ITK-class for the sub transforms, which have a reduced dimension.

Definition at line 122 of file elxEulerStackTransform.h.

◆ ReducedDimensionImageType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionImageType = itk::Image<PixelType, Self::ReducedSpaceDimension>

Definition at line 145 of file elxEulerStackTransform.h.

◆ ReducedDimensionIndexType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionIndexType = typename ReducedDimensionRegionType::IndexType

Definition at line 149 of file elxEulerStackTransform.h.

◆ ReducedDimensionInputPointType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionInputPointType = typename ReducedDimensionEulerTransformType::InputPointType

Definition at line 127 of file elxEulerStackTransform.h.

◆ ReducedDimensionOriginType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionOriginType = typename ReducedDimensionImageType::PointType

Definition at line 152 of file elxEulerStackTransform.h.

◆ ReducedDimensionOutputVectorType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionOutputVectorType = typename ReducedDimensionEulerTransformType::OutputVectorType

Definition at line 126 of file elxEulerStackTransform.h.

◆ ReducedDimensionPointType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionPointType = typename ReducedDimensionImageType::PointType

Definition at line 147 of file elxEulerStackTransform.h.

◆ ReducedDimensionRegionType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionRegionType = itk::ImageRegion<Self::ReducedSpaceDimension>

Definition at line 146 of file elxEulerStackTransform.h.

◆ ReducedDimensionSizeType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionSizeType = typename ReducedDimensionImageType::SizeType

Definition at line 148 of file elxEulerStackTransform.h.

◆ ReducedDimensionSpacingType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::ReducedDimensionSpacingType = typename ReducedDimensionImageType::SpacingType

Definition at line 150 of file elxEulerStackTransform.h.

◆ RegionType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::RegionType = typename FixedImageType::RegionType

Definition at line 162 of file elxEulerStackTransform.h.

◆ ScalesType

template<class TElastix >
using elastix::TransformBase< TElastix >::ScalesType = typename OptimizerType::ScalesType

Definition at line 190 of file elxTransformBase.h.

◆ Self

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

Standard ITK-stuff.

Definition at line 90 of file elxEulerStackTransform.h.

◆ SizeType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::SizeType = typename FixedImageType::SizeType

Definition at line 159 of file elxEulerStackTransform.h.

◆ SpacingType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::SpacingType = typename FixedImageType::SpacingType

Definition at line 161 of file elxEulerStackTransform.h.

◆ StackTransformType

template<class TElastix >
using elastix::EulerStackTransform< TElastix >::StackTransformType = itk::EulerStackTransform<SpaceDimension>
private

The deleted copy constructor and assignment operator. Typedef for stack transform.

Definition at line 226 of file elxEulerStackTransform.h.

◆ Superclass1

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

Definition at line 91 of file elxEulerStackTransform.h.

◆ Superclass2

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

Definition at line 93 of file elxEulerStackTransform.h.

Constructor & Destructor Documentation

◆ EulerStackTransform()

template<class TElastix >
elastix::EulerStackTransform< TElastix >::EulerStackTransform ( )
inlineprotected

The constructor.

Definition at line 200 of file elxEulerStackTransform.h.

◆ ~EulerStackTransform()

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

The destructor.

Member Function Documentation

◆ BeforeAll()

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

Execute stuff before anything else is done:

Reimplemented from elastix::BaseComponent.

◆ BeforeRegistration()

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

Execute stuff before the actual registration:

  • Set the stack transform parameters.
  • Set initial sub transforms.
  • Create initial registration parameters.

Reimplemented from elastix::BaseComponent.

◆ CreateDerivedTransformParametersMap()

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

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

Implements elastix::TransformBase< TElastix >.

◆ elxClassNameMacro()

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

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

◆ GetClassName()

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

Run-time type information (and related methods).

Reimplemented from elastix::TransformBase< TElastix >.

◆ InitializeEulerTransform()

template<class TElastix >
unsigned int elastix::EulerStackTransform< TElastix >::InitializeEulerTransform ( )
private

Initialize the affine transform.

◆ InitializeTransform()

template<class TElastix >
void elastix::EulerStackTransform< TElastix >::InitializeTransform ( )
private

Method initialize the parameters (to 0).

◆ InitialTransformCenter()

template<class TElastix >
virtual void elastix::EulerStackTransform< TElastix >::InitialTransformCenter ( ReducedDimensionInputPointType point)
virtual

Function to rotate center of rotation point using initial transformation.

◆ ITK_DISALLOW_COPY_AND_MOVE()

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

◆ itkStaticConstMacro() [1/2]

template<class TElastix >
elastix::EulerStackTransform< TElastix >::itkStaticConstMacro ( ReducedSpaceDimension  ,
unsigned int  ,
Superclass2::FixedImageDimension -  1 
)

◆ itkStaticConstMacro() [2/2]

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

(Reduced) dimension of the fixed image.

◆ New()

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

Method for creation through the object factory.

◆ ReadCenterOfRotationPoint()

template<class TElastix >
virtual bool elastix::EulerStackTransform< TElastix >::ReadCenterOfRotationPoint ( ReducedDimensionInputPointType rotationPoint) const
protectedvirtual

Try to read the CenterOfRotationPoint from the transform parameter file The CenterOfRotationPoint is already in world coordinates. Transform parameter files generated by elastix version > 3.402 save the center of rotation in this way.

◆ ReadFromFile()

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

Function to read transform-parameters from a file.

Reimplemented from elastix::TransformBase< TElastix >.

◆ SetScales()

template<class TElastix >
virtual void elastix::EulerStackTransform< TElastix >::SetScales ( )
virtual

Set the scales

  • If AutomaticScalesEstimation is "true" estimate scales
  • If scales are provided by the user use those,
  • Otherwise use some default value This function is called by BeforeRegistration, after the InitializeTransform function is called

Field Documentation

◆ elxOverrideGetSelfMacro

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

Definition at line 214 of file elxEulerStackTransform.h.

◆ m_DummySubTransform

template<class TElastix >
ReducedDimensionEulerTransformPointer elastix::EulerStackTransform< TElastix >::m_DummySubTransform
private

Dummy sub transform to be used to set sub transforms of stack transform.

Definition at line 232 of file elxEulerStackTransform.h.

◆ m_NumberOfSubTransforms

template<class TElastix >
unsigned int elastix::EulerStackTransform< TElastix >::m_NumberOfSubTransforms
private

Stack variables.

Definition at line 235 of file elxEulerStackTransform.h.

◆ m_StackOrigin

template<class TElastix >
double elastix::EulerStackTransform< TElastix >::m_StackOrigin
private

Definition at line 236 of file elxEulerStackTransform.h.

◆ m_StackSpacing

template<class TElastix >
double elastix::EulerStackTransform< TElastix >::m_StackSpacing
private

Definition at line 236 of file elxEulerStackTransform.h.

◆ m_StackTransform

template<class TElastix >
const StackTransformType::Pointer elastix::EulerStackTransform< TElastix >::m_StackTransform { StackTransformType::New() }
private

The Affine stack transform.

Definition at line 229 of file elxEulerStackTransform.h.



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