#include <elxSimilarityTransform.h>
A transform based on the itk SimilarityTransforms.
This transform is a rigid body transformation, with an isotropic scaling. In 2D, the order of parameters is:
[scale, rotation angle, translationx, translationy]
In 3D, the order of parameters is:
[versor1 versor2 versor3 translationx translationy translationz scale]
Make sure, when specifying the Scales manually that you keep in mind this order!
The parameters used in this class are:
Transform: Select this transform as follows:
(Transform "SimilarityTransform")
Scales: the scale factor between the rotations, translations, and the isotropic scaling, used in the optimizer.
example: (Scales 100000.0 60000.0 ... 80000.0)
With this transform, 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 and the scale by a factor 10000.0. These are rather arbitrary values. See also the AutomaticScalesEstimation parameter. See also the comment in the documentation of SimilarityTransformElastix about the order of the parameters in 2D and 3D.
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 90)
By default the CenterOfRotation is set to the geometric center of the image.
AutomaticTransformInitialization: whether or not the initial translation between images should be estimated as the distance between their centers.
example: (AutomaticTransformInitialization "true")
By default "false" is assumed. So, no initial translation.
AutomaticTransformInitializationMethod: how to initialize this transform. Should be one of {GeometricalCenter, CenterOfGravity}.
example: (AutomaticTransformInitializationMethod "CenterOfGravity")
By default "GeometricalCenter" is assumed.
The transform parameters necessary for transformix, additionally defined by this class, are:
Definition at line 76 of file elxSimilarityTransform.h.

Public Member Functions | |
| void | BeforeRegistration () override |
| elxClassNameMacro ("SimilarityTransform") | |
| ITK_DISALLOW_COPY_AND_MOVE (SimilarityTransformElastix) | |
| itkOverrideGetNameOfClassMacro (SimilarityTransformElastix) | |
| itkStaticConstMacro (SpaceDimension, unsigned int, Superclass2::FixedImageDimension) | |
| void | ReadFromFile () override |
| virtual void | SetScales () |
| Public Member Functions inherited from itk::AdvancedCombinationTransform< TScalarType, NDimensions > | |
| void | EvaluateJacobianWithImageGradientProduct (const InputPointType &inputPoint, const MovingImageGradientType &movingImageGradient, DerivativeType &imageJacobian, NonZeroJacobianIndicesType &nonZeroJacobianIndices) const override |
| 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) | |
| itkOverrideGetNameOfClassMacro (AdvancedCombinationTransform) | |
| itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions) | |
| void | SetCurrentTransform (CurrentTransformType *_arg) |
| void | SetFixedParameters (const FixedParametersType &fixedParam) override |
| void | SetInitialTransform (InitialTransformType *_arg) |
| void | SetParameters (const ParametersType ¶m) override |
| void | SetParametersByValue (const ParametersType ¶m) 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, 3, 3 > | |
| void | ComputeJacobianWithRespectToParameters (const InputPointType &, JacobianType &) const override |
| virtual bool | GetHasNonZeroJacobianOfSpatialHessian () const |
| ITK_DISALLOW_COPY_AND_MOVE (AdvancedTransform) | |
| itkOverrideGetNameOfClassMacro (AdvancedTransform) | |
| itkStaticConstMacro (InputSpaceDimension, unsigned int, NInputDimensions) | |
| 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 | CreateTransformParameterMap (const ParametersType ¶m, ParameterMapType ¶meterMap, const bool includeDerivedTransformParameters=true) const |
| ITKBaseType * | GetAsITKBaseType () |
| const ITKBaseType * | GetAsITKBaseType () const |
| ITK_DISALLOW_COPY_AND_MOVE (TransformBase) | |
| itkOverrideGetNameOfClassMacro (TransformBase) | |
| itkStaticConstMacro (FixedImageDimension, unsigned int, FixedImageType::ImageDimension) | |
| itkStaticConstMacro (MovingImageDimension, unsigned int, MovingImageType::ImageDimension) | |
| void | ReadInitialTransformFromFile (const std::string &transformParameterFileName) |
| void | SetFinalParameters () |
| void | SetInitialTransform (InitialTransformType *_arg) |
| void | SetReadWriteTransformParameters (const bool _arg) |
| void | SetTransformParameterFileName (const std::string &filename) |
| template<typename TMesh> | |
| TMesh::Pointer | TransformMesh (const TMesh &mesh) const |
| void | TransformPoints () const |
| void | WriteToFile (std::ostream &transformationParameterInfo, const ParametersType ¶m) const |
| Public Member Functions inherited from elastix::BaseComponentSE< TElastix > | |
| void | AddTargetCellToIterationInfo (const char *const name) |
| const Configuration * | GetConfiguration () const |
| ElastixType * | GetElastix () const |
| auto & | GetIterationInfoAt (const char *const name) |
| itk::Statistics::MersenneTwisterRandomVariateGenerator & | GetRandomVariateGenerator () |
| RegistrationType * | GetRegistration () const |
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponentSE) | |
| void | RemoveTargetCellFromIterationInfo (const char *const name) |
| void | SetConfiguration (const 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 int | BeforeAll () |
| virtual void | BeforeEachResolution () |
| virtual void | BeforeEachResolutionBase () |
| virtual const char * | elxGetClassName () const |
| const char * | GetComponentLabel () const |
| ITK_DISALLOW_COPY_AND_MOVE (BaseComponent) | |
| itkVirtualGetNameOfClassMacro (BaseComponent) | |
| void | SetComponentLabel (const char *label, unsigned int idx) |
Static Public Member Functions | |
| static Pointer | New () |
| Static Public Member Functions inherited from itk::AdvancedCombinationTransform< TScalarType, NDimensions > | |
| 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 () |
Private Member Functions | |
| ParameterMapType | CreateDerivedTransformParameterMap () const override |
| void | InitializeTransform () |
| bool | ReadCenterOfRotationPoint (InputPointType &rotationPoint) const |
Private Attributes | |
| elxOverrideGetSelfMacro | |
| const SimilarityTransformPointer | m_SimilarityTransform { SimilarityTransformType::New() } |
Additional Inherited Members | |
| Protected Attributes inherited from itk::AdvancedTransform< TScalarType, 3, 3 > | |
| bool | m_HasNonZeroJacobianOfSpatialHessian |
| bool | m_HasNonZeroSpatialHessian |
| Protected Attributes inherited from elastix::BaseComponentSE< TElastix > | |
| Configuration::ConstPointer | m_Configuration {} |
| itk::WeakPointer< TElastix > | m_Elastix {} |
| RegistrationType * | m_Registration {} |
| using elastix::SimilarityTransformElastix< TElastix >::CombinationTransformType = typename Superclass2::CombinationTransformType |
Definition at line 141 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 90 of file elxSimilarityTransform.h.
| using elastix::TransformBase< TElastix >::CoordinateType |
Elastix typedef's.
Definition at line 163 of file elxTransformBase.h.
| using elastix::SimilarityTransformElastix< TElastix >::DirectionType = typename FixedImageType::DirectionType |
Definition at line 150 of file elxSimilarityTransform.h.
| using elastix::TransformBase< TElastix >::FixedImageType |
Definition at line 164 of file elxTransformBase.h.
| using elastix::SimilarityTransformElastix< TElastix >::IndexType = typename FixedImageType::IndexType |
Other typedef's.
Definition at line 144 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::IndexValueType = typename IndexType::IndexValueType |
Definition at line 145 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 140 of file elxSimilarityTransform.h.
| using elastix::TransformBase< TElastix >::MovingImageType |
Definition at line 165 of file elxTransformBase.h.
| using elastix::SimilarityTransformElastix< TElastix >::OffsetType = typename SimilarityTransformType::OffsetType |
Definition at line 131 of file elxSimilarityTransform.h.
| using elastix::TransformBase< TElastix >::ParameterMapType |
Typedef that is used in the elastix dll version.
Definition at line 206 of file elxTransformBase.h.
| using elastix::SimilarityTransformElastix< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 89 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::PointType = typename FixedImageType::PointType |
Definition at line 147 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::RegionType = typename FixedImageType::RegionType |
Definition at line 149 of file elxSimilarityTransform.h.
| using elastix::TransformBase< TElastix >::ScalesType |
Definition at line 197 of file elxTransformBase.h.
| using elastix::SimilarityTransformElastix< TElastix >::Self = SimilarityTransformElastix |
Standard ITK-stuff.
Definition at line 85 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::SimilarityTransformPointer = typename SimilarityTransformType::Pointer |
NOTE: use this one only in 3D (otherwise it's just an int).
Definition at line 130 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::SimilarityTransformType |
The ITK-class that provides most of the functionality, and that is set as the "CurrentTransform" in the CombinationTransform
Definition at line 94 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::SizeType = typename FixedImageType::SizeType |
Definition at line 146 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::SpacingType = typename FixedImageType::SpacingType |
Definition at line 148 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::Superclass1 |
Definition at line 86 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::Superclass2 = elx::TransformBase<TElastix> |
Definition at line 88 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::TransformInitializerPointer = typename TransformInitializerType::Pointer |
Definition at line 154 of file elxSimilarityTransform.h.
| using elastix::SimilarityTransformElastix< TElastix >::TransformInitializerType |
Definition at line 152 of file elxSimilarityTransform.h.
|
protected |
The constructor.
|
overrideprotecteddefault |
The destructor.
|
overridevirtual |
Execute stuff before the actual registration:
Reimplemented from elastix::BaseComponent.
|
overrideprivatevirtual |
Creates a map of the parameters specific for this (derived) transform type.
Implements elastix::TransformBase< TElastix >.
| elastix::SimilarityTransformElastix< TElastix >::elxClassNameMacro | ( | "SimilarityTransform" | ) |
Name of this class. Use this name in the parameter file to select this specific transform.
example: (Transform "SimilarityTransform")
|
private |
Initialize Transform.
It is not yet possible to enter an initial rotation angle.
| elastix::SimilarityTransformElastix< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | SimilarityTransformElastix< TElastix > | ) |
| elastix::SimilarityTransformElastix< TElastix >::itkOverrideGetNameOfClassMacro | ( | SimilarityTransformElastix< TElastix > | ) |
Run-time type information (and related methods).
| elastix::SimilarityTransformElastix< TElastix >::itkStaticConstMacro | ( | SpaceDimension | , |
| unsigned int | , | ||
| Superclass2::FixedImageDimension | ) |
Dimension of the fixed image.
|
static |
Method for creation through the object factory.
|
private |
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.
|
overridevirtual |
Function to read transform-parameters from a file.
It reads the center of rotation and calls the superclass' implementation.
Reimplemented from elastix::TransformBase< TElastix >.
|
virtual |
Set the scales
|
private |
Definition at line 190 of file elxSimilarityTransform.h.
|
private |
Definition at line 222 of file elxSimilarityTransform.h.
Generated on 26-02-2026
for elastix by 1.16.1 (669aeeefca743c148e2d935b3d3c69535c7491e6) |