go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxSimilarityTransform.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 elxSimilarityTransform_h
19#define elxSimilarityTransform_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
22#include "itkSimilarityTransform.h"
23#include "itkCenteredTransformInitializer.h"
24
25namespace elastix
26{
27
78template <class TElastix>
79class ITK_TEMPLATE_EXPORT SimilarityTransformElastix
80 : public itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType,
81 elx::TransformBase<TElastix>::FixedImageDimension>
82 , public elx::TransformBase<TElastix>
83{
84public:
86
92 using Pointer = itk::SmartPointer<Self>;
93 using ConstPointer = itk::SmartPointer<const Self>;
94
97 using SimilarityTransformType = itk::SimilarityTransform<typename elx::TransformBase<TElastix>::CoordRepType,
99
101 itkNewMacro(Self);
102
105
110 elxClassNameMacro("SimilarityTransform");
111
113 itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension);
114
118 using typename Superclass1::ScalarType;
119 using typename Superclass1::ParametersType;
120 using typename Superclass1::NumberOfParametersType;
121 using typename Superclass1::JacobianType;
122
123 using typename Superclass1::InputPointType;
124 using typename Superclass1::OutputPointType;
125 using typename Superclass1::InputVectorType;
126 using typename Superclass1::OutputVectorType;
127 using typename Superclass1::InputCovariantVectorType;
128 using typename Superclass1::OutputCovariantVectorType;
129 using typename Superclass1::InputVnlVectorType;
130 using typename Superclass1::OutputVnlVectorType;
131
133 using SimilarityTransformPointer = typename SimilarityTransformType::Pointer;
134 using OffsetType = typename SimilarityTransformType::OffsetType;
135
137 using typename Superclass2::ElastixType;
138 using typename Superclass2::ParameterMapType;
139 using typename Superclass2::RegistrationType;
140 using typename Superclass2::CoordRepType;
141 using typename Superclass2::FixedImageType;
142 using typename Superclass2::MovingImageType;
145
147 using IndexType = typename FixedImageType::IndexType;
148 using IndexValueType = typename IndexType::IndexValueType;
149 using SizeType = typename FixedImageType::SizeType;
150 using PointType = typename FixedImageType::PointType;
151 using SpacingType = typename FixedImageType::SpacingType;
152 using RegionType = typename FixedImageType::RegionType;
153 using DirectionType = typename FixedImageType::DirectionType;
154
156 itk::CenteredTransformInitializer<SimilarityTransformType, FixedImageType, MovingImageType>;
157 using TransformInitializerPointer = typename TransformInitializerType::Pointer;
158
160 using typename Superclass2::ScalesType;
161
166 void
168
176 virtual void
178
183 void
184 ReadFromFile() override;
185
186protected:
190 ~SimilarityTransformElastix() override = default;
191
197 virtual bool
199
205 virtual bool
207
208private:
210
226 void
228
232
233 const SimilarityTransformPointer m_SimilarityTransform{ SimilarityTransformType::New() };
234};
235
236} // end namespace elastix
237
238#ifndef ITK_MANUAL_INSTANTIATION
239# include "elxSimilarityTransform.hxx"
240#endif
241
242#endif // end #ifndef elxSimilarityTransform_h
A transform based on the itk SimilarityTransforms.
itk::SmartPointer< const Self > ConstPointer
virtual bool ReadCenterOfRotationIndex(InputPointType &rotationPoint) const
typename IndexType::IndexValueType IndexValueType
itk::CenteredTransformInitializer< SimilarityTransformType, FixedImageType, MovingImageType > TransformInitializerType
elxClassNameMacro("SimilarityTransform")
typename Superclass2::CombinationTransformType CombinationTransformType
~SimilarityTransformElastix() override=default
itk::SimilarityTransform< typename elx::TransformBase< TElastix >::CoordRepType, elx::TransformBase< TElastix >::FixedImageDimension > SimilarityTransformType
typename SimilarityTransformType::OffsetType OffsetType
typename FixedImageType::SpacingType SpacingType
typename FixedImageType::SizeType SizeType
typename FixedImageType::DirectionType DirectionType
ParameterMapType CreateDerivedTransformParametersMap() const override
typename TElastix::ParameterMapType ParameterMapType
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
typename FixedImageType::IndexType IndexType
typename FixedImageType::PointType PointType
typename FixedImageType::RegionType RegionType
typename TransformInitializerType::Pointer TransformInitializerPointer
typename SimilarityTransformType::Pointer SimilarityTransformPointer
virtual bool ReadCenterOfRotationPoint(InputPointType &rotationPoint) const
ITK_DISALLOW_COPY_AND_MOVE(SimilarityTransformElastix)
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