go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxAffineLogStackTransform.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
19#ifndef ELXAFFINELOGSTACKTRANSFORM_H
20#define ELXAFFINELOGSTACKTRANSFORM_H
21
26
27#include "elxIncludes.h"
28
29namespace elastix
30{
31
40template <class TElastix>
41class ITK_TEMPLATE_EXPORT AffineLogStackTransform
42 : public itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType,
43 elx::TransformBase<TElastix>::FixedImageDimension>
44 , public elx::TransformBase<TElastix>
45{
46public:
48
54 using Pointer = itk::SmartPointer<Self>;
55 using ConstPointer = itk::SmartPointer<const Self>;
56
58 itkNewMacro(Self);
59
62
67 elxClassNameMacro("AffineLogStackTransform");
68
70 itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension);
71 itkStaticConstMacro(ReducedSpaceDimension, unsigned int, Superclass2::FixedImageDimension - 1);
72
76 using InputPointType = typename AffineLogTransformType::InputPointType;
77
82
83 using ReducedDimensionOutputVectorType = typename ReducedDimensionAffineLogTransformBaseType::OutputVectorType;
84 using ReducedDimensionInputPointType = typename ReducedDimensionAffineLogTransformBaseType::InputPointType;
85
87 using typename Superclass1::ParametersType;
88 using typename Superclass1::NumberOfParametersType;
89
91 using typename Superclass2::ElastixType;
92 using typename Superclass2::ParameterMapType;
93 using typename Superclass2::RegistrationType;
94 using typename Superclass2::CoordRepType;
95 using typename Superclass2::FixedImageType;
96 using typename Superclass2::MovingImageType;
99
101 using PixelType = float;
102 using ReducedDimensionImageType = itk::Image<PixelType, Self::ReducedSpaceDimension>;
103 using ReducedDimensionRegionType = itk::ImageRegion<Self::ReducedSpaceDimension>;
104 using ReducedDimensionPointType = typename ReducedDimensionImageType::PointType;
105 using ReducedDimensionSizeType = typename ReducedDimensionImageType::SizeType;
106 using ReducedDimensionIndexType = typename ReducedDimensionRegionType::IndexType;
107 using ReducedDimensionSpacingType = typename ReducedDimensionImageType::SpacingType;
108 using ReducedDimensionDirectionType = typename ReducedDimensionImageType::DirectionType;
109 using ReducedDimensionOriginType = typename ReducedDimensionImageType::PointType;
110
112 using typename Superclass2::ScalesType;
113
115 using IndexType = typename FixedImageType::IndexType;
116 using SizeType = typename FixedImageType::SizeType;
117 using PointType = typename FixedImageType::PointType;
118 using SpacingType = typename FixedImageType::SpacingType;
119 using RegionType = typename FixedImageType::RegionType;
120 using DirectionType = typename FixedImageType::DirectionType;
121 using ReducedDimensionContinuousIndexType = typename itk::ContinuousIndex<CoordRepType, ReducedSpaceDimension>;
122 using ContinuousIndexType = typename itk::ContinuousIndex<CoordRepType, SpaceDimension>;
123
126 int
127 BeforeAll() override;
128
134 void
136
144 virtual void
146
148 void
149 ReadFromFile() override;
150
151protected:
153 AffineLogStackTransform() { this->Superclass1::SetCurrentTransform(m_StackTransform); }
154
156 ~AffineLogStackTransform() override = default;
157
163 virtual bool
165
166private:
168
170 void
172
176
180
182 const typename StackTransformType::Pointer m_StackTransform{ StackTransformType::New() };
183
186
189 double m_StackOrigin, m_StackSpacing;
190
192 unsigned int
194};
195
196} // end namespace elastix
197
198#ifndef ITK_MANUAL_INSTANTIATION
199# include "elxAffineLogStackTransform.hxx"
200#endif
201
202#endif // ELXAFFINELOGSTACKTRANSFORM_H
An affine log transform based on the itkStackTransform.
typename FixedImageType::SpacingType SpacingType
typename ReducedDimensionImageType::PointType ReducedDimensionOriginType
typename itk::ContinuousIndex< CoordRepType, SpaceDimension > ContinuousIndexType
typename FixedImageType::DirectionType DirectionType
itk::ImageRegion< Self::ReducedSpaceDimension > ReducedDimensionRegionType
typename itk::ContinuousIndex< CoordRepType, ReducedSpaceDimension > ReducedDimensionContinuousIndexType
ParameterMapType CreateDerivedTransformParameterMap() const override
typename FixedImageType::RegionType RegionType
itk::Image< PixelType, Self::ReducedSpaceDimension > ReducedDimensionImageType
typename ReducedDimensionAffineLogTransformBaseType::OutputVectorType ReducedDimensionOutputVectorType
typename Superclass2::ITKBaseType ITKBaseType
typename AffineLogTransformType::Pointer AffineLogTransformPointer
typename ReducedDimensionImageType::PointType ReducedDimensionPointType
typename TElastix::ParameterMapType ParameterMapType
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
virtual bool ReadCenterOfRotationPoint(ReducedDimensionInputPointType &rotationPoint) const
unsigned int InitializeAffineLogTransform()
typename AffineLogTransformType::InputPointType InputPointType
ReducedDimensionAffineLogTransformBasePointer m_DummySubTransform
typename ReducedDimensionImageType::SizeType ReducedDimensionSizeType
elxClassNameMacro("AffineLogStackTransform")
~AffineLogStackTransform() override=default
typename ReducedDimensionAffineLogTransformBaseType::InputPointType ReducedDimensionInputPointType
typename FixedImageType::SizeType SizeType
typename FixedImageType::PointType PointType
typename Superclass2::CombinationTransformType CombinationTransformType
typename ReducedDimensionRegionType::IndexType ReducedDimensionIndexType
typename ReducedDimensionImageType::SpacingType ReducedDimensionSpacingType
ITK_DISALLOW_COPY_AND_MOVE(AffineLogStackTransform)
itk::SmartPointer< const Self > ConstPointer
typename FixedImageType::IndexType IndexType
typename ReducedDimensionImageType::DirectionType ReducedDimensionDirectionType
typename ReducedDimensionAffineLogTransformBaseType::Pointer ReducedDimensionAffineLogTransformBasePointer
itkStaticConstMacro(ReducedSpaceDimension, unsigned int, Superclass2::FixedImageDimension - 1)
This class is the elastix base class for all Transforms.
typename TElastix::FixedImageType FixedImageType
typename TElastix::ParameterMapType ParameterMapType
typename TElastix::MovingImageType MovingImageType
typename ElastixType::RegistrationBaseType RegistrationType
itk::Optimizer::ScalesType ScalesType
This class combines two transforms: an 'initial transform' with a 'current transform'.
itk::SmartPointer< AffineLogStackTransform > Pointer


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo