go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
elxMultiBSplineTransformWithNormal.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 elxMultiBSplineTransformWithNormal_h
19#define elxMultiBSplineTransformWithNormal_h
20
21#include "elxIncludes.h" // include first to avoid MSVS warning
25
28
29namespace elastix
30{
31
89template <class TElastix>
90class ITK_TEMPLATE_EXPORT MultiBSplineTransformWithNormal
91 : public itk::AdvancedCombinationTransform<typename elx::TransformBase<TElastix>::CoordRepType,
92 elx::TransformBase<TElastix>::FixedImageDimension>
93 , public TransformBase<TElastix>
94{
95public:
97
103 using Pointer = itk::SmartPointer<Self>;
104 using ConstPointer = itk::SmartPointer<const Self>;
105
107 itkNewMacro(Self);
108
111
116 elxClassNameMacro("MultiBSplineTransformWithNormal");
117
119 itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension);
120
126 Self::SpaceDimension>;
128
132 Self::SpaceDimension,
133 1>;
136 Self::SpaceDimension,
137 2>;
140 Self::SpaceDimension,
141 3>;
142
144 using typename Superclass1::ScalarType;
145 using typename Superclass1::ParametersType;
146 using typename Superclass1::NumberOfParametersType;
147 using typename Superclass1::JacobianType;
148 using typename Superclass1::InputVectorType;
149 using typename Superclass1::OutputVectorType;
150 using typename Superclass1::InputCovariantVectorType;
151 using typename Superclass1::OutputCovariantVectorType;
152 using typename Superclass1::InputVnlVectorType;
153 using typename Superclass1::OutputVnlVectorType;
154 using typename Superclass1::InputPointType;
155 using typename Superclass1::OutputPointType;
156
158 using PixelType = typename BSplineTransformBaseType::PixelType;
169
171 using typename Superclass2::ElastixType;
172 using typename Superclass2::ParameterMapType;
173 using typename Superclass2::RegistrationType;
174 using typename Superclass2::CoordRepType;
175 using typename Superclass2::FixedImageType;
176 using typename Superclass2::MovingImageType;
179
183 using GridScheduleType = typename GridScheduleComputerType ::VectorGridSpacingFactorType;
186
188 using ImageLabelType = itk::Image<unsigned char, Self::SpaceDimension>;
189 using ImageLabelPointer = typename ImageLabelType::Pointer;
190
195 int
196 BeforeAll() override;
197
209 void
211
216 void
218
224 virtual void
226
228 void
229 ReadFromFile() override;
230
232 virtual void
233 SetOptimizerScales(const unsigned int edgeWidth);
234
235protected:
238
241
243 virtual void
245
246private:
248
254 void
256
260
266 std::string m_LabelsPath;
267
269 unsigned int m_SplineOrder;
270
272 unsigned int
274};
275
276} // end namespace elastix
277
278#ifndef ITK_MANUAL_INSTANTIATION
279# include "elxMultiBSplineTransformWithNormal.hxx"
280#endif
281
282#endif // end #ifndef elxMultiBSplineTransformWithNormal_h
A transform based on the itkMultiBSplineDeformableTransformWithNormal.
ITK_DISALLOW_COPY_AND_MOVE(MultiBSplineTransformWithNormal)
itk::Image< unsigned char, Self::SpaceDimension > ImageLabelType
typename BSplineTransformBaseType::OriginType OriginType
~MultiBSplineTransformWithNormal() override=default
typename BSplineTransformBaseType::SpacingType SpacingType
typename BSplineTransformBaseType::ImageType ImageType
typename BSplineTransformBaseType::ContinuousIndexType ContinuousIndexType
typename TElastix::ParameterMapType ParameterMapType
MultiBSplineTransformWithNormalCubicType::Pointer m_MultiBSplineTransformWithNormal
typename BSplineTransformBaseType::ImagePointer ImagePointer
typename BSplineTransformBaseType::DirectionType DirectionType
typename BSplineTransformBaseType::ParameterIndexArrayType ParameterIndexArrayType
ParameterMapType CreateDerivedTransformParameterMap() const override
itkStaticConstMacro(SpaceDimension, unsigned int, Superclass2::FixedImageDimension)
typename GridScheduleComputerType::Pointer GridScheduleComputerPointer
typename BSplineTransformBaseType::RegionType RegionType
typename BSplineTransformBaseType::IndexType IndexType
typename BSplineTransformBaseType::Pointer BSplineTransformBasePointer
elxClassNameMacro("MultiBSplineTransformWithNormal")
typename Superclass2::CombinationTransformType CombinationTransformType
typename GridScheduleComputerType ::VectorGridSpacingFactorType GridScheduleType
virtual void SetOptimizerScales(const unsigned int edgeWidth)
typename BSplineTransformBaseType::SizeType SizeType
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, given the image information and the desi...
This transform is a composition of B-spline transformations, allowing sliding motion between differen...
Convenience class for upsampling a B-spline coefficient image.


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