|
|
Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages |
#include <elxEulerStackTransform.h>
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:
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)
ComputeZYX: whether the order of rotations is ZYX. Default: "false". When false, the order is ZXY.
This parameter is only relevant for 3D transformation (i.e. when the stack transform is 4D), otherwise it is ignored.
The transform parameters necessary for transformix, additionally defined by this class, are:
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)
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.
Public Member Functions | |
| int | BeforeAll () override |
| void | BeforeRegistration () override |
| elxClassNameMacro ("EulerStackTransform") | |
| virtual void | InitialTransformCenter (ReducedDimensionInputPointType &point) |
| ITK_DISALLOW_COPY_AND_MOVE (EulerStackTransform) | |
| itkOverrideGetNameOfClassMacro (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< 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 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 Types | |
| using | StackTransformType = itk::EulerStackTransform<SpaceDimension> |
Private Member Functions | |
| ParameterMapType | CreateDerivedTransformParameterMap () const override |
| unsigned int | InitializeEulerTransform () |
| void | InitializeTransform () |
| bool | ReadCenterOfRotationPoint (ReducedDimensionInputPointType &rotationPoint) const |
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::EulerStackTransform< TElastix >::CombinationTransformType = typename Superclass2::CombinationTransformType |
Definition at line 141 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ConstPointer = itk::SmartPointer<const Self> |
Definition at line 95 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ContinuousIndexType = typename itk::ContinuousIndex<CoordinateType, SpaceDimension> |
Definition at line 165 of file elxEulerStackTransform.h.
| using elastix::TransformBase< TElastix >::CoordinateType |
Elastix typedef's.
Definition at line 163 of file elxTransformBase.h.
| using elastix::EulerStackTransform< TElastix >::DirectionType = typename FixedImageType::DirectionType |
Definition at line 163 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::EulerTransformPointer = typename EulerTransformType::Pointer |
Definition at line 118 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::EulerTransformType |
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.
| using elastix::TransformBase< TElastix >::FixedImageType |
Definition at line 164 of file elxTransformBase.h.
| using elastix::EulerStackTransform< TElastix >::IndexType = typename FixedImageType::IndexType |
Other typedef's.
Definition at line 158 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::InputPointType = typename EulerTransformType::InputPointType |
Definition at line 119 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ITKBaseType = typename Superclass2::ITKBaseType |
Definition at line 140 of file elxEulerStackTransform.h.
| using elastix::TransformBase< TElastix >::MovingImageType |
Definition at line 165 of file elxTransformBase.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::EulerStackTransform< TElastix >::Pointer = itk::SmartPointer<Self> |
Definition at line 94 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::PointType = typename FixedImageType::PointType |
Definition at line 160 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionContinuousIndexType = typename itk::ContinuousIndex<CoordinateType, ReducedSpaceDimension> |
Definition at line 164 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionDirectionType = typename ReducedDimensionImageType::DirectionType |
Definition at line 151 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionEulerTransformPointer = typename ReducedDimensionEulerTransformType::Pointer |
Definition at line 124 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionEulerTransformType |
The ITK-class for the sub transforms, which have a reduced dimension.
Definition at line 122 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionImageType = itk::Image<PixelType, Self::ReducedSpaceDimension> |
Definition at line 145 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionIndexType = typename ReducedDimensionRegionType::IndexType |
Definition at line 149 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionInputPointType = typename ReducedDimensionEulerTransformType::InputPointType |
Definition at line 127 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionOriginType = typename ReducedDimensionImageType::PointType |
Definition at line 152 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionOutputVectorType = typename ReducedDimensionEulerTransformType::OutputVectorType |
Definition at line 126 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionPointType = typename ReducedDimensionImageType::PointType |
Definition at line 147 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionRegionType = itk::ImageRegion<Self::ReducedSpaceDimension> |
Definition at line 146 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionSizeType = typename ReducedDimensionImageType::SizeType |
Definition at line 148 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::ReducedDimensionSpacingType = typename ReducedDimensionImageType::SpacingType |
Definition at line 150 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::RegionType = typename FixedImageType::RegionType |
Definition at line 162 of file elxEulerStackTransform.h.
| using elastix::TransformBase< TElastix >::ScalesType |
Definition at line 197 of file elxTransformBase.h.
| using elastix::EulerStackTransform< TElastix >::Self = EulerStackTransform |
Standard ITK-stuff.
Definition at line 90 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::SizeType = typename FixedImageType::SizeType |
Definition at line 159 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::SpacingType = typename FixedImageType::SpacingType |
Definition at line 161 of file elxEulerStackTransform.h.
|
private |
The deleted copy constructor and assignment operator. Typedef for stack transform.
Definition at line 226 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::Superclass1 |
Definition at line 91 of file elxEulerStackTransform.h.
| using elastix::EulerStackTransform< TElastix >::Superclass2 = elx::TransformBase<TElastix> |
Definition at line 93 of file elxEulerStackTransform.h.
|
inlineprotected |
The constructor.
Definition at line 200 of file elxEulerStackTransform.h.
|
overrideprotecteddefault |
The destructor.
|
overridevirtual |
Execute stuff before anything else is done:
Reimplemented from elastix::BaseComponent.
|
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::EulerStackTransform< TElastix >::elxClassNameMacro | ( | "EulerStackTransform< TElastix >" | ) |
Name of this class. Use this name in the parameter file to select this specific transform.
example: (Transform "EulerStackTransform")
|
private |
Initialize the affine transform.
|
private |
Method initialize the parameters (to 0).
|
virtual |
Function to rotate center of rotation point using initial transformation.
| elastix::EulerStackTransform< TElastix >::ITK_DISALLOW_COPY_AND_MOVE | ( | EulerStackTransform< TElastix > | ) |
| elastix::EulerStackTransform< TElastix >::itkOverrideGetNameOfClassMacro | ( | EulerStackTransform< TElastix > | ) |
Run-time type information (and related methods).
| elastix::EulerStackTransform< TElastix >::itkStaticConstMacro | ( | ReducedSpaceDimension | , |
| unsigned int | , | ||
| Superclass2::FixedImageDimension - | 1 ) |
| elastix::EulerStackTransform< TElastix >::itkStaticConstMacro | ( | SpaceDimension | , |
| unsigned int | , | ||
| Superclass2::FixedImageDimension | ) |
(Reduced) 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.
Reimplemented from elastix::TransformBase< TElastix >.
|
virtual |
Set the scales
|
private |
Definition at line 206 of file elxEulerStackTransform.h.
|
private |
Dummy sub transform to be used to set sub transforms of stack transform.
Definition at line 232 of file elxEulerStackTransform.h.
|
private |
Stack variables.
Definition at line 235 of file elxEulerStackTransform.h.
|
private |
Definition at line 236 of file elxEulerStackTransform.h.
|
private |
Definition at line 236 of file elxEulerStackTransform.h.
|
private |
The Affine stack transform.
Definition at line 229 of file elxEulerStackTransform.h.
Generated on 1774142652 for elastix by 1.15.0 |