Home
|
Main Page
|
Modules
|
Namespace List
|
Class Hierarchy
|
Alphabetical List
|
Data Structures
|
File List
|
Namespace Members
|
Data Fields
|
Globals
|
Related Pages
Src
elx
5.1.0
Components
Transforms
EulerStackTransform
elxEulerStackTransform.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 elxEulerStackTransform_h
19
#define elxEulerStackTransform_h
20
21
#include "
elxIncludes.h
"
23
#include "
itkAdvancedCombinationTransform.h
"
24
#include "
itkEulerStackTransform.h
"
25
#include "
itkEulerTransform.h
"
26
27
namespace
elastix
28
{
29
80
template
<
class
TElastix>
81
class
ITK_TEMPLATE_EXPORT
EulerStackTransform
82
:
public
itk::AdvancedCombinationTransform
<typename elx::TransformBase<TElastix>::CoordRepType,
83
elx::TransformBase<TElastix>::FixedImageDimension>
84
,
public
elx::TransformBase
<TElastix>
85
{
86
public
:
87
ITK_DISALLOW_COPY_AND_MOVE
(
EulerStackTransform
);
88
90
using
Self
=
EulerStackTransform
;
91
using
Superclass1
=
itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType
,
92
elx::TransformBase<TElastix>::FixedImageDimension
>;
93
using
Superclass2
=
elx::TransformBase<TElastix>
;
94
using
Pointer
= itk::SmartPointer<Self>;
95
using
ConstPointer
= itk::SmartPointer<const Self>;
96
98
itkNewMacro(
Self
);
99
101
itkTypeMacro(
EulerStackTransform
,
itk::AdvancedCombinationTransform
);
102
107
elxClassNameMacro
(
"EulerStackTransform"
);
108
110
itkStaticConstMacro
(SpaceDimension,
unsigned
int
, Superclass2::FixedImageDimension);
111
itkStaticConstMacro
(ReducedSpaceDimension,
unsigned
int
, Superclass2::FixedImageDimension - 1);
112
116
using
EulerTransformType
=
117
itk::EulerTransform<typename elx::TransformBase<TElastix>::CoordRepType
, Self::SpaceDimension>;
118
using
EulerTransformPointer
=
typename
EulerTransformType::Pointer
;
119
using
InputPointType
=
typename
EulerTransformType::InputPointType;
120
122
using
ReducedDimensionEulerTransformType
=
123
itk::EulerTransform<typename elx::TransformBase<TElastix>::CoordRepType
, Self::ReducedSpaceDimension>;
124
using
ReducedDimensionEulerTransformPointer
=
typename
ReducedDimensionEulerTransformType::Pointer
;
125
126
using
ReducedDimensionOutputVectorType
=
typename
ReducedDimensionEulerTransformType::OutputVectorType;
127
using
ReducedDimensionInputPointType
=
typename
ReducedDimensionEulerTransformType::InputPointType;
128
130
using
typename Superclass1::ParametersType;
131
using
typename Superclass1::NumberOfParametersType;
132
134
using
typename
Superclass2::ElastixType
;
135
using
typename
Superclass2::ParameterMapType
;
136
using
typename
Superclass2::RegistrationType
;
137
using
typename
Superclass2::CoordRepType
;
138
using
typename
Superclass2::FixedImageType
;
139
using
typename
Superclass2::MovingImageType
;
140
using
ITKBaseType
=
typename
Superclass2::ITKBaseType
;
141
using
CombinationTransformType
=
typename
Superclass2::CombinationTransformType
;
142
144
using
PixelType
=
float
;
145
using
ReducedDimensionImageType
= itk::Image<PixelType, Self::ReducedSpaceDimension>;
146
using
ReducedDimensionRegionType
= itk::ImageRegion<Self::ReducedSpaceDimension>;
147
using
ReducedDimensionPointType
=
typename
ReducedDimensionImageType::PointType;
148
using
ReducedDimensionSizeType
=
typename
ReducedDimensionImageType::SizeType;
149
using
ReducedDimensionIndexType
=
typename
ReducedDimensionRegionType::IndexType;
150
using
ReducedDimensionSpacingType
=
typename
ReducedDimensionImageType::SpacingType;
151
using
ReducedDimensionDirectionType
=
typename
ReducedDimensionImageType::DirectionType;
152
using
ReducedDimensionOriginType
=
typename
ReducedDimensionImageType::PointType;
153
155
using
typename
Superclass2::ScalesType
;
156
158
using
IndexType
=
typename
FixedImageType::IndexType;
159
using
SizeType
=
typename
FixedImageType::SizeType;
160
using
PointType
=
typename
FixedImageType::PointType;
161
using
SpacingType
=
typename
FixedImageType::SpacingType;
162
using
RegionType
=
typename
FixedImageType::RegionType;
163
using
DirectionType
=
typename
FixedImageType::DirectionType;
164
using
ReducedDimensionContinuousIndexType
=
typename
itk::ContinuousIndex<CoordRepType, ReducedSpaceDimension>;
165
using
ContinuousIndexType
=
typename
itk::ContinuousIndex<CoordRepType, SpaceDimension>;
166
169
int
170
BeforeAll
()
override
;
171
177
void
178
BeforeRegistration
()
override
;
179
187
virtual
void
188
SetScales
();
189
191
void
192
ReadFromFile
()
override
;
193
195
virtual
void
196
InitialTransformCenter
(
ReducedDimensionInputPointType
& point);
197
198
protected
:
200
EulerStackTransform
() { this->Superclass1::SetCurrentTransform(m_StackTransform); }
201
203
~EulerStackTransform
()
override
=
default
;
204
210
virtual
bool
211
ReadCenterOfRotationPoint
(
ReducedDimensionInputPointType
& rotationPoint)
const
;
212
213
private
:
214
elxOverrideGetSelfMacro
;
215
217
void
218
InitializeTransform
();
219
221
ParameterMapType
222
CreateDerivedTransformParametersMap
()
const override
;
223
226
using
StackTransformType
=
itk::EulerStackTransform<SpaceDimension>
;
227
229
const
typename
StackTransformType::Pointer
m_StackTransform{ StackTransformType::New() };
230
232
ReducedDimensionEulerTransformPointer
m_DummySubTransform
;
233
235
unsigned
int
m_NumberOfSubTransforms
;
236
double
m_StackOrigin
, m_StackSpacing;
237
239
unsigned
int
240
InitializeEulerTransform
();
241
};
242
243
244
}
// end namespace elastix
245
246
#ifndef ITK_MANUAL_INSTANTIATION
247
# include "elxEulerStackTransform.hxx"
248
#endif
249
250
#endif
// end #ifndef elxEulerStackTransform_h
SmartPointer< Self >
double
elastix::BaseComponentSE::ElastixType
TElastix ElastixType
Definition:
elxBaseComponentSE.h:57
elastix::EulerStackTransform
A stack transform based on the itk EulerTransforms.
Definition:
elxEulerStackTransform.h:85
elastix::EulerStackTransform::ReducedDimensionSpacingType
typename ReducedDimensionImageType::SpacingType ReducedDimensionSpacingType
Definition:
elxEulerStackTransform.h:150
elastix::EulerStackTransform::ReadCenterOfRotationPoint
virtual bool ReadCenterOfRotationPoint(ReducedDimensionInputPointType &rotationPoint) const
elastix::EulerStackTransform::EulerStackTransform
EulerStackTransform()
Definition:
elxEulerStackTransform.h:200
elastix::EulerStackTransform::SpacingType
typename FixedImageType::SpacingType SpacingType
Definition:
elxEulerStackTransform.h:161
elastix::EulerStackTransform::ReducedDimensionPointType
typename ReducedDimensionImageType::PointType ReducedDimensionPointType
Definition:
elxEulerStackTransform.h:147
elastix::EulerStackTransform::m_StackOrigin
double m_StackOrigin
Definition:
elxEulerStackTransform.h:236
elastix::EulerStackTransform::ReducedDimensionImageType
itk::Image< PixelType, Self::ReducedSpaceDimension > ReducedDimensionImageType
Definition:
elxEulerStackTransform.h:145
elastix::EulerStackTransform::IndexType
typename FixedImageType::IndexType IndexType
Definition:
elxEulerStackTransform.h:158
elastix::EulerStackTransform::ReducedDimensionSizeType
typename ReducedDimensionImageType::SizeType ReducedDimensionSizeType
Definition:
elxEulerStackTransform.h:148
elastix::EulerStackTransform::CombinationTransformType
typename Superclass2::CombinationTransformType CombinationTransformType
Definition:
elxEulerStackTransform.h:141
elastix::EulerStackTransform::RegionType
typename FixedImageType::RegionType RegionType
Definition:
elxEulerStackTransform.h:162
elastix::EulerStackTransform::SizeType
typename FixedImageType::SizeType SizeType
Definition:
elxEulerStackTransform.h:159
elastix::EulerStackTransform::ITKBaseType
typename Superclass2::ITKBaseType ITKBaseType
Definition:
elxEulerStackTransform.h:140
elastix::EulerStackTransform::InputPointType
typename EulerTransformType::InputPointType InputPointType
Definition:
elxEulerStackTransform.h:119
elastix::EulerStackTransform::EulerTransformPointer
typename EulerTransformType::Pointer EulerTransformPointer
Definition:
elxEulerStackTransform.h:118
elastix::EulerStackTransform::~EulerStackTransform
~EulerStackTransform() override=default
elastix::EulerStackTransform::m_NumberOfSubTransforms
unsigned int m_NumberOfSubTransforms
Definition:
elxEulerStackTransform.h:235
elastix::EulerStackTransform::DirectionType
typename FixedImageType::DirectionType DirectionType
Definition:
elxEulerStackTransform.h:163
elastix::EulerStackTransform::SetScales
virtual void SetScales()
elastix::EulerStackTransform::InitialTransformCenter
virtual void InitialTransformCenter(ReducedDimensionInputPointType &point)
elastix::EulerStackTransform::BeforeAll
int BeforeAll() override
elastix::EulerStackTransform::PointType
typename FixedImageType::PointType PointType
Definition:
elxEulerStackTransform.h:160
elastix::EulerStackTransform::ParameterMapType
typename TElastix::ParameterMapType ParameterMapType
Definition:
elxTransformBase.h:199
elastix::EulerStackTransform::ReducedDimensionEulerTransformPointer
typename ReducedDimensionEulerTransformType::Pointer ReducedDimensionEulerTransformPointer
Definition:
elxEulerStackTransform.h:124
elastix::EulerStackTransform::elxOverrideGetSelfMacro
elxOverrideGetSelfMacro
Definition:
elxEulerStackTransform.h:214
elastix::EulerStackTransform::Pointer
itk::SmartPointer< Self > Pointer
Definition:
elxEulerStackTransform.h:94
elastix::EulerStackTransform::ReducedDimensionDirectionType
typename ReducedDimensionImageType::DirectionType ReducedDimensionDirectionType
Definition:
elxEulerStackTransform.h:151
elastix::EulerStackTransform::BeforeRegistration
void BeforeRegistration() override
elastix::EulerStackTransform::elxClassNameMacro
elxClassNameMacro("EulerStackTransform")
elastix::EulerStackTransform::ReadFromFile
void ReadFromFile() override
elastix::EulerStackTransform::CreateDerivedTransformParametersMap
ParameterMapType CreateDerivedTransformParametersMap() const override
elastix::EulerStackTransform::ReducedDimensionOriginType
typename ReducedDimensionImageType::PointType ReducedDimensionOriginType
Definition:
elxEulerStackTransform.h:152
elastix::EulerStackTransform::ReducedDimensionOutputVectorType
typename ReducedDimensionEulerTransformType::OutputVectorType ReducedDimensionOutputVectorType
Definition:
elxEulerStackTransform.h:126
elastix::EulerStackTransform::m_DummySubTransform
ReducedDimensionEulerTransformPointer m_DummySubTransform
Definition:
elxEulerStackTransform.h:232
elastix::EulerStackTransform::ReducedDimensionInputPointType
typename ReducedDimensionEulerTransformType::InputPointType ReducedDimensionInputPointType
Definition:
elxEulerStackTransform.h:127
elastix::EulerStackTransform::ReducedDimensionContinuousIndexType
typename itk::ContinuousIndex< CoordRepType, ReducedSpaceDimension > ReducedDimensionContinuousIndexType
Definition:
elxEulerStackTransform.h:164
elastix::EulerStackTransform::ReducedDimensionRegionType
itk::ImageRegion< Self::ReducedSpaceDimension > ReducedDimensionRegionType
Definition:
elxEulerStackTransform.h:146
elastix::EulerStackTransform::InitializeTransform
void InitializeTransform()
elastix::EulerStackTransform::ContinuousIndexType
typename itk::ContinuousIndex< CoordRepType, SpaceDimension > ContinuousIndexType
Definition:
elxEulerStackTransform.h:165
elastix::EulerStackTransform::ITK_DISALLOW_COPY_AND_MOVE
ITK_DISALLOW_COPY_AND_MOVE(EulerStackTransform)
elastix::EulerStackTransform::itkStaticConstMacro
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
elastix::EulerStackTransform::InitializeEulerTransform
unsigned int InitializeEulerTransform()
elastix::EulerStackTransform::ReducedDimensionIndexType
typename ReducedDimensionRegionType::IndexType ReducedDimensionIndexType
Definition:
elxEulerStackTransform.h:149
elastix::EulerStackTransform::ConstPointer
itk::SmartPointer< const Self > ConstPointer
Definition:
elxEulerStackTransform.h:95
elastix::EulerStackTransform::itkStaticConstMacro
itkStaticConstMacro(ReducedSpaceDimension, unsigned int, Superclass2::FixedImageDimension - 1)
elastix::TransformBase
This class is the elastix base class for all Transforms.
Definition:
elxTransformBase.h:135
elastix::TransformBase::FixedImageType
typename TElastix::FixedImageType FixedImageType
Definition:
elxTransformBase.h:154
elastix::TransformBase::ScalesType
typename OptimizerType::ScalesType ScalesType
Definition:
elxTransformBase.h:190
elastix::TransformBase::ParameterMapType
typename TElastix::ParameterMapType ParameterMapType
Definition:
elxTransformBase.h:199
elastix::TransformBase::MovingImageType
typename TElastix::MovingImageType MovingImageType
Definition:
elxTransformBase.h:155
elastix::TransformBase::RegistrationType
typename ElastixType::RegistrationBaseType RegistrationType
Definition:
elxBaseComponentSE.h:65
float
itk::AdvancedCombinationTransform
This class combines two transforms: an 'initial transform' with a 'current transform'.
Definition:
itkAdvancedCombinationTransform.h:57
itk::EulerStackTransform
Definition:
itkEulerStackTransform.h:30
itk::EulerStackTransform::Pointer
itk::SmartPointer< EulerStackTransform > Pointer
Definition:
itkEulerStackTransform.h:39
itk::EulerTransform
This class combines the Euler2DTransform with the Euler3DTransform.
Definition:
itkEulerTransform.h:89
elxIncludes.h
itkAdvancedCombinationTransform.h
itkEulerStackTransform.h
itkEulerTransform.h
elastix
Definition:
elxDefaultConstruct.h:25
Generated on 2023-01-13 for elastix by
1.9.6