go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxAdvancedBSplineTransform.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 elxAdvancedBSplineTransform_h
19#define elxAdvancedBSplineTransform_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
24
29
30namespace elastix
31{
108
109template <typename TElastix>
110class ITK_TEMPLATE_EXPORT AdvancedBSplineTransform
111 : public itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordinateType,
112 elx::TransformBase<TElastix>::FixedImageDimension>
113 , public TransformBase<TElastix>
114{
115public:
117
123 using Pointer = itk::SmartPointer<Self>;
124 using ConstPointer = itk::SmartPointer<const Self>;
125
127 itkNewMacro(Self);
128
131
136 elxClassNameMacro("BSplineTransform");
137
139 itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension);
140
146 Self::SpaceDimension>;
147 using BSplineTransformBasePointer = typename BSplineTransformBaseType::Pointer;
148
150 using typename Superclass1::ScalarType;
151 using typename Superclass1::ParametersType;
152 using typename Superclass1::NumberOfParametersType;
153 using typename Superclass1::JacobianType;
154 using typename Superclass1::InputVectorType;
155 using typename Superclass1::OutputVectorType;
156 using typename Superclass1::InputCovariantVectorType;
157 using typename Superclass1::OutputCovariantVectorType;
158 using typename Superclass1::InputVnlVectorType;
159 using typename Superclass1::OutputVnlVectorType;
160 using typename Superclass1::InputPointType;
161 using typename Superclass1::OutputPointType;
162
164 using PixelType = typename BSplineTransformBaseType::PixelType;
165 using ImageType = typename BSplineTransformBaseType::ImageType;
166 using ImagePointer = typename BSplineTransformBaseType::ImagePointer;
167 using RegionType = typename BSplineTransformBaseType::RegionType;
168 using IndexType = typename BSplineTransformBaseType::IndexType;
169 using SizeType = typename BSplineTransformBaseType::SizeType;
170 using SpacingType = typename BSplineTransformBaseType::SpacingType;
171 using OriginType = typename BSplineTransformBaseType::OriginType;
172 using DirectionType = typename BSplineTransformBaseType::DirectionType;
173 using ContinuousIndexType = typename BSplineTransformBaseType::ContinuousIndexType;
174 using ParameterIndexArrayType = typename BSplineTransformBaseType::ParameterIndexArrayType;
175
177 using typename Superclass2::ElastixType;
178 using typename Superclass2::RegistrationType;
179 using typename Superclass2::CoordinateType;
180 using typename Superclass2::FixedImageType;
181 using typename Superclass2::MovingImageType;
184
189 using GridScheduleType = typename GridScheduleComputerType ::VectorGridSpacingFactorType;
192
194 using typename Superclass2::ParameterMapType;
195
200 int
201 BeforeAll() override;
202
214 void
216
221 void
223
229 virtual void
231
233 void
234 ReadFromFile() override;
235
237 virtual void
238 SetOptimizerScales(const unsigned int edgeWidth);
239
240protected:
243
245 ~AdvancedBSplineTransform() override = default;
246
248 virtual void
250
251private:
253
259 void
261
265
270
272 unsigned int m_SplineOrder;
274
276 unsigned int
278};
279
280} // end namespace elastix
281
282#ifndef ITK_MANUAL_INSTANTIATION
283# include "elxAdvancedBSplineTransform.hxx"
284#endif
285
286#endif // end #ifndef elxAdvancedBSplineTransform_h
elxClassNameMacro("BSplineTransform")
typename Superclass2::ITKBaseType ITKBaseType
unsigned int InitializeBSplineTransform()
typename BSplineTransformBaseType::RegionType RegionType
~AdvancedBSplineTransform() override=default
itk::CyclicGridScheduleComputer< CoordinateType, SpaceDimension > CyclicGridScheduleComputerType
typename BSplineTransformBaseType::OriginType OriginType
itk::SmartPointer< const Self > ConstPointer
typename BSplineTransformBaseType::ImageType ImageType
GridScheduleComputerPointer m_GridScheduleComputer
typename TElastix::ParameterMapType ParameterMapType
typename Superclass2::CombinationTransformType CombinationTransformType
typename GridScheduleComputerType::Pointer GridScheduleComputerPointer
typename BSplineTransformBaseType::SpacingType SpacingType
typename BSplineTransformBaseType::ImagePointer ImagePointer
itk::AdvancedBSplineDeformableTransformBase< typename elx::TransformBase< TElastix >::CoordinateType, Self::SpaceDimension > BSplineTransformBaseType
typename GridScheduleComputerType ::VectorGridSpacingFactorType GridScheduleType
elx::TransformBase< TElastix > Superclass2
typename BSplineTransformBaseType::SizeType SizeType
typename BSplineTransformBaseType::ContinuousIndexType ContinuousIndexType
typename BSplineTransformBaseType::Pointer BSplineTransformBasePointer
itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension > Superclass1
itkOverrideGetNameOfClassMacro(AdvancedBSplineTransform)
virtual void SetOptimizerScales(const unsigned int edgeWidth)
typename BSplineTransformBaseType::IndexType IndexType
typename BSplineTransformBaseType::DirectionType DirectionType
virtual void PreComputeGridInformation()
typename GridUpsamplerType::Pointer GridUpsamplerPointer
itk::UpsampleBSplineParametersFilter< ParametersType, ImageType > GridUpsamplerType
typename BSplineTransformBaseType::ParameterIndexArrayType ParameterIndexArrayType
ITK_DISALLOW_COPY_AND_MOVE(AdvancedBSplineTransform)
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
ParameterMapType CreateDerivedTransformParameterMap() const override
itk::GridScheduleComputer< CoordinateType, SpaceDimension > GridScheduleComputerType
This class is the elastix base class for all Transforms.
typename TElastix::FixedImageType FixedImageType
ElastixBase::CoordinateType CoordinateType
typename TElastix::ParameterMapType ParameterMapType
typename TElastix::MovingImageType MovingImageType
typename ElastixType::RegistrationBaseType RegistrationType
itk::AdvancedCombinationTransform< CoordinateType, Self::FixedImageDimension > CombinationTransformType
CombinationTransformType ITKBaseType
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...
Convenience class for upsampling a B-spline coefficient image.


Generated on 26-02-2026 for elastix by doxygen 1.16.1 (669aeeefca743c148e2d935b3d3c69535c7491e6) elastix logo