go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxRecursiveBSplineTransform.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 elxRecursiveBSplineTransform_h
19#define elxRecursiveBSplineTransform_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
24
29
30namespace elastix
31{
108template <class TElastix>
109class ITK_TEMPLATE_EXPORT RecursiveBSplineTransform
110 : public itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType,
111 elx::TransformBase<TElastix>::FixedImageDimension>
112 , public TransformBase<TElastix>
113{
114public:
116
122 using Pointer = itk::SmartPointer<Self>;
123 using ConstPointer = itk::SmartPointer<const Self>;
124
126 itkNewMacro(Self);
127
130
135 elxClassNameMacro("RecursiveBSplineTransform");
136
138 itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension);
139
145 Self::SpaceDimension>;
147
149 using typename Superclass1::ScalarType;
150 using typename Superclass1::ParametersType;
151 using typename Superclass1::NumberOfParametersType;
152 using typename Superclass1::JacobianType;
153 using typename Superclass1::InputVectorType;
154 using typename Superclass1::OutputVectorType;
155 using typename Superclass1::InputCovariantVectorType;
156 using typename Superclass1::OutputCovariantVectorType;
157 using typename Superclass1::InputVnlVectorType;
158 using typename Superclass1::OutputVnlVectorType;
159 using typename Superclass1::InputPointType;
160 using typename Superclass1::OutputPointType;
161
163 using PixelType = typename BSplineTransformBaseType::PixelType;
174
176 using typename Superclass2::ElastixType;
177 using typename Superclass2::RegistrationType;
178 using typename Superclass2::CoordRepType;
179 using typename Superclass2::FixedImageType;
180 using typename Superclass2::MovingImageType;
183
188 using GridScheduleType = typename GridScheduleComputerType ::VectorGridSpacingFactorType;
191
193 using typename Superclass2::ParameterMapType;
194
199 int
200 BeforeAll() override;
201
213 void
215
220 void
222
228 virtual void
230
232 void
233 ReadFromFile() override;
234
236 virtual void
237 SetOptimizerScales(const unsigned int edgeWidth);
238
239protected:
242
244 ~RecursiveBSplineTransform() override = default;
245
247 virtual void
249
250private:
252
258 void
260
264
269
271 unsigned int m_SplineOrder;
273
275 unsigned int
277};
278
279} // end namespace elastix
280
281#ifndef ITK_MANUAL_INSTANTIATION
282# include "elxRecursiveBSplineTransform.hxx"
283#endif
284
285#endif // end #ifndef elxRecursiveBSplineTransform_h
ParameterMapType CreateDerivedTransformParameterMap() const override
typename Superclass2::CombinationTransformType CombinationTransformType
ITK_DISALLOW_COPY_AND_MOVE(RecursiveBSplineTransform)
typename BSplineTransformBaseType::ImageType ImageType
typename BSplineTransformBaseType::OriginType OriginType
typename BSplineTransformBaseType::ParameterIndexArrayType ParameterIndexArrayType
typename BSplineTransformBaseType::ContinuousIndexType ContinuousIndexType
typename BSplineTransformBaseType::RegionType RegionType
typename GridUpsamplerType::Pointer GridUpsamplerPointer
typename GridScheduleComputerType ::VectorGridSpacingFactorType GridScheduleType
typename BSplineTransformBaseType::ImagePointer ImagePointer
typename BSplineTransformBaseType::SpacingType SpacingType
typename TElastix::ParameterMapType ParameterMapType
itk::SmartPointer< const Self > ConstPointer
elxClassNameMacro("RecursiveBSplineTransform")
typename Superclass2::ITKBaseType ITKBaseType
typename BSplineTransformBaseType::Pointer BSplineTransformBasePointer
virtual void SetOptimizerScales(const unsigned int edgeWidth)
typename BSplineTransformBaseType::DirectionType DirectionType
~RecursiveBSplineTransform() override=default
typename BSplineTransformBaseType::SizeType SizeType
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
typename GridScheduleComputerType::Pointer GridScheduleComputerPointer
typename BSplineTransformBaseType::IndexType IndexType
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
Base class for deformable transform using a B-spline representation.
This class combines two transforms: an 'initial transform' with a 'current transform'.
This class computes all information about the B-spline grid.
This class computes all information about the B-spline grid, given the image information and the desi...
A recursive implementation of the B-spline transform.
Convenience class for upsampling a B-spline coefficient image.


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