27#include "vnl/vnl_vector_fixed.h"
28#include "vnl/vnl_matrix_fixed.h"
82template <
typename TParametersValueType,
unsigned int VInputDimension = 3,
unsigned int VOutputDimension = 3>
99 static constexpr unsigned int InputSpaceDimension = VInputDimension;
100 static constexpr unsigned int OutputSpaceDimension = VOutputDimension;
109 return VInputDimension;
116 return VOutputDimension;
188 itkExceptionMacro(
"TransformVector(const InputVectorType &)"
189 "is unimplemented for "
197 virtual OutputVectorType
204 itkExceptionMacro(
"TransformVector( const InputVnlVectorType & ) is "
213 virtual OutputVnlVectorType
220 itkExceptionMacro(
"TransformVector( const InputVectorPixelType & ) is "
229 virtual OutputVectorPixelType
236 itkExceptionMacro(
"TransformCovariantVector( const InputCovariantVectorType & ) is "
246 virtual OutputCovariantVectorType
254 itkExceptionMacro(
"TransformCovariantVector(const InputVectorPixelType &)"
255 "is unimplemented for "
264 virtual OutputVectorPixelType
271 itkExceptionMacro(
"TransformDiffusionTensor3D( const InputDiffusionTensor3DType & ) is "
281 virtual OutputDiffusionTensor3DType
288 itkExceptionMacro(
"TransformDiffusionTensor( const InputVectorPixelType & ) is "
293 virtual OutputVectorPixelType
309 itkExceptionMacro(
"TransformSymmetricSecondRankTensor( const InputSymmetricSecondRankTensorType & ) is "
315 virtual OutputVectorPixelType
318 itkExceptionMacro(
"TransformSymmetricSecondRankTensor( const InputVectorPixelType & ) is "
329 virtual OutputVectorPixelType
352 this->SetParameters(p);
385 return m_FixedParameters;
409 return this->GetNumberOfParameters();
413 NumberOfParametersType
416 return this->m_Parameters.Size();
423 return this->m_FixedParameters.Size();
446 virtual InverseTransformBasePointer
454 GetTransformTypeAsString()
const override;
464 return Superclass::TransformCategoryEnum::UnknownTransformCategory;
470 return (this->GetTransformCategory() == Superclass::TransformCategoryEnum::Linear);
518 this->ComputeJacobianWithRespectToParameters(p, jacobian);
531 itkExceptionMacro(
"ComputeJacobianWithRespectToPosition( InputPointType, JacobianType )"
532 " is unimplemented for "
535 itkLegacyMacro(
virtual void ComputeJacobianWithRespectToPosition(
const InputPointType & x, JacobianType & jacobian)
547 itkLegacyMacro(
virtual void ComputeInverseJacobianWithRespectToPosition(
const InputPointType & x,
560 template <typename TImage>
561 std::enable_if_t<TImage::ImageDimension == VInputDimension && TImage::ImageDimension == VOutputDimension, void>
562 ApplyToImageMetadata(TImage * image)
const;
563 template <
typename TImage>
564 std::enable_if_t<TImage::ImageDimension == VInputDimension && TImage::ImageDimension == VOutputDimension, void>
567 this->ApplyToImageMetadata(image.
GetPointer());
589 OutputDiffusionTensor3DType
595 template <
typename TTransform>
600 return transform.GetInverse(inverse) ? inverse.GetPointer() :
nullptr;
605 template <
typename TType>
609 std::string rval(
"other");
617 std::string rval(
"float");
625 std::string rval(
"double");
632#ifndef ITK_MANUAL_INSTANTIATION
633# include "itkTransform.hxx"
Array2D class representing a 2D array.
Array class with size defined at construction time.
A templated class holding a n-Dimensional covariant vector.
Represent a diffusion tensor as used in DTI images.
A templated class holding a M x N size Matrix.
Class to hold and manage different parameter types used during optimization.
ObjectType * GetPointer() const noexcept
Represent a symmetric tensor of second rank.
A templated class holding a n-Dimensional vector.
const char * GetNameOfClass() const override
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents