go home Home | Main Page | Topics | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxSplineKernelTransform.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 elxSplineKernelTransform_h
19#define elxSplineKernelTransform_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
22#include "itkKernelTransform2.h"
28
29namespace elastix
30{
31
113
114template <typename TElastix>
115class ITK_TEMPLATE_EXPORT SplineKernelTransform
116 : public itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordinateType,
117 elx::TransformBase<TElastix>::FixedImageDimension>
118 , public elx::TransformBase<TElastix>
119{
120public:
122
128
134 using Pointer = itk::SmartPointer<Self>;
135 using ConstPointer = itk::SmartPointer<const Self>;
136
138 itkNewMacro(Self);
139
142
147 elxClassNameMacro("SplineKernelTransform");
148
150 itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension);
151
153 using typename Superclass1::ScalarType;
154 using typename Superclass1::ParametersType;
155 using typename Superclass1::NumberOfParametersType;
156 using typename Superclass1::JacobianType;
157 using typename Superclass1::InputVectorType;
158 using typename Superclass1::OutputVectorType;
159 using typename Superclass1::InputCovariantVectorType;
160 using typename Superclass1::OutputCovariantVectorType;
161 using typename Superclass1::InputVnlVectorType;
162 using typename Superclass1::OutputVnlVectorType;
163 using typename Superclass1::InputPointType;
164 using typename Superclass1::OutputPointType;
165
167 using typename Superclass2::ElastixType;
168 using typename Superclass2::ParameterMapType;
169 using typename Superclass2::RegistrationType;
170 using typename Superclass2::CoordinateType;
171 using typename Superclass2::FixedImageType;
172 using typename Superclass2::MovingImageType;
175
177 using KernelTransformPointer = typename KernelTransformType::Pointer;
178 using PointSetType = typename KernelTransformType::PointSetType;
179 using PointSetPointer = typename PointSetType::Pointer;
180
185 int
186 BeforeAll() override;
187
194 void
196
198 void
199 ReadFromFile() override;
200
201protected:
205 ~SplineKernelTransform() override = default;
206
212
216 virtual bool
217 SetKernelType(const std::string & kernelType);
218
222 virtual void
224
229 virtual bool
231
233 void
234 ReadLandmarkFile(const std::string & filename, PointSetPointer & landmarkPointSet, const bool landmarksInFixedImage);
235
238
239private:
241
245
247};
248
249} // end namespace elastix
250
251#ifndef ITK_MANUAL_INSTANTIATION
252# include "elxSplineKernelTransform.hxx"
253#endif
254
255#endif // end #ifndef elxSplineKernelTransform_h
ParameterMapType CreateDerivedTransformParameterMap() const override
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
ITK_DISALLOW_COPY_AND_MOVE(SplineKernelTransform)
typename PointSetType::Pointer PointSetPointer
elx::TransformBase< TElastix > Superclass2
itk::ElasticBodySplineKernelTransform2< CoordinateType, Self::SpaceDimension > EBKernelTransformType
void BeforeRegistration() override
typename KernelTransformType::PointSetType PointSetType
~SplineKernelTransform() override=default
itk::SmartPointer< const Self > ConstPointer
itk::ElasticBodyReciprocalSplineKernelTransform2< CoordinateType, Self::SpaceDimension > EBRKernelTransformType
elxClassNameMacro("SplineKernelTransform")
typename TElastix::ParameterMapType ParameterMapType
typename Superclass2::CombinationTransformType CombinationTransformType
typename KernelTransformType::Pointer KernelTransformPointer
virtual void DetermineSourceLandmarks()
virtual bool SetKernelType(const std::string &kernelType)
itk::AdvancedCombinationTransform< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension > Superclass1
itk::ThinPlateR2LogRSplineKernelTransform2< CoordinateType, Self::SpaceDimension > TPRKernelTransformType
itk::ThinPlateSplineKernelTransform2< CoordinateType, Self::SpaceDimension > TPKernelTransformType
itk::VolumeSplineKernelTransform2< CoordinateType, Self::SpaceDimension > VKernelTransformType
void ReadLandmarkFile(const std::string &filename, PointSetPointer &landmarkPointSet, const bool landmarksInFixedImage)
virtual bool DetermineTargetLandmarks()
itk::KernelTransform2< typename elx::TransformBase< TElastix >::CoordinateType, elx::TransformBase< TElastix >::FixedImageDimension > KernelTransformType
itkOverrideGetNameOfClassMacro(SplineKernelTransform)
typename Superclass2::ITKBaseType ITKBaseType
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
This class combines two transforms: an 'initial transform' with a 'current transform'.


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