go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxAffineLogTransform.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright UMC Utrecht and contributors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef _ELXAFFINELOGTRANSFORM_H_
19#define _ELXAFFINELOGTRANSFORM_H_
20
23#include "itkCenteredTransformInitializer.h"
24#include "elxIncludes.h"
25
26namespace elastix
27{
28
42template <class TElastix>
43class ITK_TEMPLATE_EXPORT AffineLogTransformElastix
44 : public itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType,
45 elx::TransformBase<TElastix>::FixedImageDimension>
46 , public elx::TransformBase<TElastix>
47{
48public:
50
56 using Pointer = itk::SmartPointer<Self>;
57 using ConstPointer = itk::SmartPointer<const Self>;
58
63
65 itkNewMacro(Self);
66
69
74 elxClassNameMacro("AffineLogTransform");
75
77 itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension);
78
80 using typename Superclass1::ScalarType;
81 using typename Superclass1::ParametersType;
82 using typename Superclass1::NumberOfParametersType;
83 using typename Superclass1::JacobianType;
84
85 using typename Superclass1::InputPointType;
86 using typename Superclass1::OutputPointType;
87 using typename Superclass1::InputVectorType;
88 using typename Superclass1::OutputVectorType;
89 using typename Superclass1::InputCovariantVectorType;
90 using typename Superclass1::OutputCovariantVectorType;
91 using typename Superclass1::InputVnlVectorType;
92 using typename Superclass1::OutputVnlVectorType;
93
96
98 using typename Superclass2::ElastixType;
99 using typename Superclass2::ParameterMapType;
100 using typename Superclass2::RegistrationType;
101 using typename Superclass2::CoordRepType;
102 using typename Superclass2::FixedImageType;
103 using typename Superclass2::MovingImageType;
106
108 using IndexType = typename FixedImageType::IndexType;
109 using IndexValueType = typename IndexType::IndexValueType;
110 using SizeType = typename FixedImageType::SizeType;
111 using PointType = typename FixedImageType::PointType;
112 using SpacingType = typename FixedImageType::SpacingType;
113 using RegionType = typename FixedImageType::RegionType;
114 using DirectionType = typename FixedImageType::DirectionType;
115
117 itk::CenteredTransformInitializer<AffineLogTransformType, FixedImageType, MovingImageType>;
118 using TransformInitializerPointer = typename TransformInitializerType::Pointer;
119
121 using typename Superclass2::ScalesType;
122
127 void
129
137 virtual void
139
144 void
145 ReadFromFile() override;
146
147protected:
150
152 ~AffineLogTransformElastix() override = default;
153
156 virtual bool
158
159private:
161
177 void
179
183
184 const AffineLogTransformPointer m_AffineLogTransform{ AffineLogTransformType::New() };
185};
186
187} // end namespace elastix
188
189#endif // ELXAFFINELOGTRANSFORM_H
190
191#ifndef ITK_MANUAL_INSTANTIATION
192#include "elxAffineLogTransform.hxx"
193#endif
This transform is an affine transformation, with a different parametrisation than the usual one.
typename TransformInitializerType::Pointer TransformInitializerPointer
typename AffineLogTransformType::Pointer AffineLogTransformPointer
ParameterMapType CreateDerivedTransformParametersMap() const override
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
typename Superclass2::CombinationTransformType CombinationTransformType
typename FixedImageType::DirectionType DirectionType
typename FixedImageType::SizeType SizeType
elxClassNameMacro("AffineLogTransform")
typename FixedImageType::PointType PointType
typename TElastix::ParameterMapType ParameterMapType
typename AffineLogTransformType::OffsetType OffsetType
itk::SmartPointer< const Self > ConstPointer
virtual bool ReadCenterOfRotationPoint(InputPointType &rotationPoint) const
~AffineLogTransformElastix() override=default
itk::CenteredTransformInitializer< AffineLogTransformType, FixedImageType, MovingImageType > TransformInitializerType
typename FixedImageType::RegionType RegionType
typename FixedImageType::SpacingType SpacingType
typename FixedImageType::IndexType IndexType
ITK_DISALLOW_COPY_AND_MOVE(AffineLogTransformElastix)
typename IndexType::IndexValueType IndexValueType
typename Superclass2::ITKBaseType ITKBaseType
This class is the elastix base class for all Transforms.
typename TElastix::FixedImageType FixedImageType
typename OptimizerType::ScalesType ScalesType
typename TElastix::ParameterMapType ParameterMapType
typename TElastix::MovingImageType MovingImageType
typename ElastixType::RegistrationBaseType RegistrationType
typename ITKBaseType::InputPointType InputPointType
This class combines two transforms: an 'initial transform' with a 'current transform'.


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