ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkBSplineTransform.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
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 * https://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 itkBSplineTransform_h
19#define itkBSplineTransform_h
20
22
23namespace itk
24{
102template <typename TParametersValueType = double, unsigned int VDimension = 3, unsigned int VSplineOrder = 3>
103class ITK_TEMPLATE_EXPORT BSplineTransform : public BSplineBaseTransform<TParametersValueType, VDimension, VSplineOrder>
104{
105public:
106 ITK_DISALLOW_COPY_AND_MOVE(BSplineTransform);
107
113
115 itkNewMacro(Self);
116
118 itkOverrideGetNameOfClassMacro(BSplineTransform);
119
121 static constexpr unsigned int SpaceDimension = VDimension;
122
124 static constexpr unsigned int SplineOrder = VSplineOrder;
125
127 using typename Superclass::ScalarType;
128
130 using typename Superclass::ParametersType;
131 using typename Superclass::ParametersValueType;
132 using typename Superclass::FixedParametersType;
134
136 using typename Superclass::JacobianType;
139
142
144 using typename Superclass::InputVectorType;
145 using typename Superclass::OutputVectorType;
146
150
152 using typename Superclass::InputVnlVectorType;
153 using typename Superclass::OutputVnlVectorType;
154
156 using typename Superclass::InputPointType;
157 using typename Superclass::OutputPointType;
158
159
160 std::string
161 GetTransformTypeAsString() const override;
162
185 void
186 SetFixedParameters(const FixedParametersType & passedParameters) override;
187
189 using typename Superclass::ImageType;
190 using typename Superclass::ImagePointer;
192
204 void
206
208 using typename Superclass::RegionType;
209
210 using typename Superclass::IndexType;
211 using typename Superclass::SizeType;
212 using typename Superclass::SpacingType;
213 using typename Superclass::DirectionType;
214 using typename Superclass::OriginType;
215
217 using typename Superclass::WeightsFunctionType;
218
219 using typename Superclass::WeightsType;
220 using typename Superclass::ContinuousIndexType;
221
224
235 void
237 OutputPointType & outputPoint,
238 WeightsType & weights,
239 ParameterIndexArrayType & indices,
240 bool & inside) const override;
243 void
245
248 GetNumberOfParameters() const override;
249
253
255 using typename Superclass::PixelType;
256
257 using typename Superclass::MeshSizeType;
258
260 virtual void
262
264 virtual OriginType
266
268 virtual void
270
274
276 virtual void
278
280 virtual DirectionType
282
284 virtual void
286
288 virtual MeshSizeType
290
291protected:
293 void
294 PrintSelf(std::ostream & os, Indent indent) const override;
295
297 ~BSplineTransform() override = default;
298
299private:
301 void
303
306 void
309 void
312 void
315 void
318
320 bool
322
323 void
325
326 void
328 const PhysicalDimensionsType & meshPhysical,
329 const DirectionType & meshDirection,
330 const MeshSizeType & meshSize);
331
332}; // class BSplineTransform
333} // namespace itk
334
335#ifndef ITK_MANUAL_INSTANTIATION
336# include "itkBSplineTransform.hxx"
337#endif
338
339#endif /* itkBSplineTransform_h */
FixedArray< unsigned long, NumberOfWeights > ParameterIndexArrayType
Vector< TParametersValueType, Self::SpaceDimension > OutputVectorType
typename ImageType::Pointer ImagePointer
CovariantVector< TParametersValueType, Self::SpaceDimension > InputCovariantVectorType
typename ImageType::PointType OriginType
typename WeightsFunctionType::ContinuousIndexType ContinuousIndexType
Array2D< ParametersValueType > JacobianType
Image< ParametersValueType, Self::SpaceDimension > ImageType
vnl_matrix_fixed< ParametersValueType, VOutputDimension, VInputDimension > JacobianPositionType
vnl_vector_fixed< TParametersValueType, SpaceDimension > OutputVnlVectorType
typename ImageType::SpacingType SpacingType
Vector< TParametersValueType, Self::SpaceDimension > InputVectorType
Point< TParametersValueType, Self::SpaceDimension > InputPointType
typename RegionType::SizeType SizeType
vnl_vector_fixed< TParametersValueType, SpaceDimension > InputVnlVectorType
ParametersValueType ScalarType
Point< TParametersValueType, Self::SpaceDimension > OutputPointType
BSplineInterpolationWeightFunction< ScalarType, Self::SpaceDimension, Self::SplineOrder > WeightsFunctionType
typename RegionType::IndexType IndexType
FixedArray< ImagePointer, VDimension > CoefficientImageArray
OutputPointType TransformPoint(const InputPointType &point) const override
typename WeightsFunctionType::WeightsType WeightsType
ImageRegion< Self::SpaceDimension > RegionType
typename ParametersType::ValueType ParametersValueType
vnl_matrix_fixed< ParametersValueType, VInputDimension, VOutputDimension > InverseJacobianPositionType
CovariantVector< TParametersValueType, Self::SpaceDimension > OutputCovariantVectorType
typename ImageType::DirectionType DirectionType
std::string GetTransformTypeAsString() const override
virtual OriginType GetTransformDomainOrigin() const
void SetFixedParametersGridSpacingFromTransformDomainInformation() const override
BSplineBaseTransform< TParametersValueType, VDimension, VSplineOrder > Superclass
void SetFixedParametersFromTransformDomainInformation(const OriginType &meshOrigin, const PhysicalDimensionsType &meshPhysical, const DirectionType &meshDirection, const MeshSizeType &meshSize)
virtual MeshSizeType GetTransformDomainMeshSize() const
virtual DirectionType GetTransformDomainDirection() const
SmartPointer< const Self > ConstPointer
typename Superclass::SpacingType PhysicalDimensionsType
virtual void SetTransformDomainMeshSize(const MeshSizeType &)
SmartPointer< Self > Pointer
void SetFixedParameters(const FixedParametersType &passedParameters) override
void SetFixedParametersGridOriginFromTransformDomainInformation() const override
virtual void SetTransformDomainPhysicalDimensions(const PhysicalDimensionsType &)
void SetFixedParametersFromCoefficientImageInformation()
void TransformPoint(const InputPointType &point, OutputPointType &outputPoint, WeightsType &weights, ParameterIndexArrayType &indices, bool &inside) const override
NumberOfParametersType GetNumberOfParameters() const override
virtual void SetTransformDomainOrigin(const OriginType &)
bool InsideValidRegion(ContinuousIndexType &) const override
void SetCoefficientImages(const CoefficientImageArray &images) override
virtual PhysicalDimensionsType GetTransformDomainPhysicalDimensions() const
void SetFixedParametersGridDirectionFromTransformDomainInformation() const override
NumberOfParametersType GetNumberOfParametersPerDimension() const override
virtual void SetTransformDomainDirection(const DirectionType &)
void ComputeJacobianWithRespectToParameters(const InputPointType &, JacobianType &) const override
void PrintSelf(std::ostream &os, Indent indent) const override
~BSplineTransform() override=default
void SetFixedParametersGridSizeFromTransformDomainInformation() const override
void SetCoefficientImageInformationFromFixedParameters() override
Control indentation during Print() invocation.
Definition itkIndent.h:50
Implements transparent reference counting.
OptimizerParameters< ParametersValueType > ParametersType
IdentifierType NumberOfParametersType
OptimizerParameters< FixedParametersValueType > FixedParametersType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....