#include <elxAffineDTITransform.h>
A transform based on the itk AffineDTITransform.
This transform is an affine transformation, with a different parametrisation than the usual one. It is specialised for MR-DTI applications. See also the description of the itk::AffineDTI3DTransform.
The parameters used in this class are:
Transform: Select this transform as follows:
(Transform "AffineDTITransform")
Scales: the scale factor for each parameter, used by the optimizer.
example: (Scales -1 -1 -1 100000000 -1 -1 -1 -1 -1 -1 -1 -1)
The scales work a bit different in this transformation, compared with the other transformations like the EulerTransform. By default, if no scales are supplied, the scales are estimated automatically. With the scales parameter, the user can override the automatically determined scales. Values smaller than or equal to 0 are ignored: the automatically estimated value is used for these parameters. Positive values override the automatically estimated scales. So, in the example above, the shear_x parameter is given a very large scale, which effectively turns off the optimization of that parameters. This might be useful in some MR-DTI application.
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.
The transform parameters necessary for transformix, additionally defined by this class, are: *
CenterOfRotation: stores the center of rotation as an index.
example: (CenterOfRotation 128 128 90)
depecrated! 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 12.345)
MatrixTranslation: the parameters as matrix and translation, so written in the same way as the parameters of the normal AffineTransform.
example: (MatrixTranslation 1 0 0 0 1 0 0 0 0.9 0.1 0.1 0.2)
This parameter is just for convenience, so that the user can compare the results between the AffineTransform and AffineDTITransform. It is not a mandatory parameter.
Definition at line 78 of file elxAffineDTITransform.h.
Public Member Functions | |
void | BeforeRegistration () override |
elxClassNameMacro ("AffineDTITransform") | |
virtual const char * | GetClassName () const |
ITK_DISALLOW_COPY_AND_MOVE (AffineDTITransformElastix) | |
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) | |
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) | |
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 | CreateTransformParameterMap (const ParametersType ¶m, ParameterMapType ¶meterMap, const bool includeDerivedTransformParameters=true) const |
ITKBaseType * | GetAsITKBaseType () |
const ITKBaseType * | GetAsITKBaseType () const |
ITK_DISALLOW_COPY_AND_MOVE (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) |
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) | |
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< 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 () |
Private Attributes | |
elxOverrideGetSelfMacro | |
const AffineDTITransformPointer | m_AffineDTITransform { AffineDTITransformType::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::AffineDTITransformElastix< TElastix >::AffineDTITransformPointer = typename AffineDTITransformType::Pointer |
Definition at line 131 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::AffineDTITransformType |
The ITK-class that provides most of the functionality, and that is set as the "CurrentTransform" in the CombinationTransform
Definition at line 96 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::CombinationTransformType = typename Superclass2::CombinationTransformType |
Definition at line 142 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 92 of file elxAffineDTITransform.h.
using elastix::TransformBase< TElastix >::CoordRepType |
Elastix typedef's.
Definition at line 156 of file elxTransformBase.h.
using elastix::AffineDTITransformElastix< TElastix >::DirectionType = typename FixedImageType::DirectionType |
Definition at line 151 of file elxAffineDTITransform.h.
using elastix::TransformBase< TElastix >::FixedImageType |
Definition at line 157 of file elxTransformBase.h.
using elastix::AffineDTITransformElastix< TElastix >::IndexType = typename FixedImageType::IndexType |
Other typedef's.
Definition at line 145 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::IndexValueType = typename IndexType::IndexValueType |
Definition at line 146 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 141 of file elxAffineDTITransform.h.
using elastix::TransformBase< TElastix >::MovingImageType |
Definition at line 158 of file elxTransformBase.h.
using elastix::AffineDTITransformElastix< TElastix >::OffsetType = typename AffineDTITransformType::OffsetType |
Definition at line 132 of file elxAffineDTITransform.h.
using elastix::TransformBase< TElastix >::ParameterMapType |
Typedef that is used in the elastix dll version.
Definition at line 199 of file elxTransformBase.h.
using elastix::AffineDTITransformElastix< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 91 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::PointType = typename FixedImageType::PointType |
Definition at line 148 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::RegionType = typename FixedImageType::RegionType |
Definition at line 150 of file elxAffineDTITransform.h.
using elastix::TransformBase< TElastix >::ScalesType |
Definition at line 190 of file elxTransformBase.h.
using elastix::AffineDTITransformElastix< TElastix >::Self = AffineDTITransformElastix |
Standard ITK-stuff.
Definition at line 87 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::SizeType = typename FixedImageType::SizeType |
Definition at line 147 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::SpacingType = typename FixedImageType::SpacingType |
Definition at line 149 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::Superclass1 |
Definition at line 88 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::Superclass2 = elx::TransformBase<TElastix> |
Definition at line 90 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::TransformInitializerPointer = typename TransformInitializerType::Pointer |
Definition at line 155 of file elxAffineDTITransform.h.
using elastix::AffineDTITransformElastix< TElastix >::TransformInitializerType |
Definition at line 153 of file elxAffineDTITransform.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::AffineDTITransformElastix< TElastix >::elxClassNameMacro | ( | "AffineDTITransform" | ) |
Name of this class. Use this name in the parameter file to select this specific transform.
example: (Transform "AffineDTITransform")
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::AdvancedCombinationTransform< TScalarType, NDimensions >.
|
private |
Initialize Transform.
It is not yet possible to enter an initial rotation angle.
elastix::AffineDTITransformElastix< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | AffineDTITransformElastix< TElastix > | ) |
elastix::AffineDTITransformElastix< TElastix >::itkStaticConstMacro | ( | SpaceDimension | , |
unsigned int | , | ||
Superclass2::FixedImageDimension | ) |
Dimension of the fixed image.
|
static |
Method for creation through the object factory.
|
protectedvirtual |
Try to read the CenterOfRotationPoint from the transform parameter file The CenterOfRotationPoint is already in world coordinates.
|
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 196 of file elxAffineDTITransform.h.
|
private |
Definition at line 220 of file elxAffineDTITransform.h.
Generated on 2024-07-17 for elastix by 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) |