itk::ThinPlateSplineKernelTransform2
#include <itkThinPlateSplineKernelTransform2.h>
Inherits from itk::KernelTransform2< TScalarType, 3 >, itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >, Transform< TScalarType, 3, 3 >
Public Types
Name | |
---|---|
typedef ThinPlateSplineKernelTransform2 | Self |
typedef KernelTransform2< TScalarType, NDimensions > | Superclass |
typedef SmartPointer< Self > | Pointer |
typedef SmartPointer< const Self > | ConstPointer |
typedef Superclass::ScalarType | ScalarType |
typedef Superclass::ParametersType | ParametersType |
typedef Superclass::JacobianType | JacobianType |
typedef Superclass::InputPointType | InputPointType |
typedef Superclass::OutputPointType | OutputPointType |
typedef Superclass::InputVectorType | InputVectorType |
typedef Superclass::OutputVectorType | OutputVectorType |
typedef Superclass::InputCovariantVectorType | InputCovariantVectorType |
typedef Superclass::OutputCovariantVectorType | OutputCovariantVectorType |
typedef Superclass::PointsIterator | PointsIterator |
Protected Types
Name | |
---|---|
typedef Superclass::GMatrixType | GMatrixType |
Public Functions
Name | |
---|---|
itkNewMacro(Self ) | |
itkTypeMacro(ThinPlateSplineKernelTransform2 , KernelTransform2 ) | |
itkStaticConstMacro(SpaceDimension , unsigned int , Superclass::SpaceDimension ) | |
void | SetSigma(double sigma) |
Protected Functions
Name | |
---|---|
ThinPlateSplineKernelTransform2() | |
virtual | ~ThinPlateSplineKernelTransform2() |
virtual void | ComputeG(const InputVectorType & x, GMatrixType & GMatrix) const |
virtual void | ComputeDeformationContribution(const InputPointType & inputPoint, OutputPointType & result) const |
Additional inherited members
Public Types inherited from itk::KernelTransform2< TScalarType, 3 >
Name | |
---|---|
typedef Superclass::NumberOfParametersType | NumberOfParametersType |
typedef Superclass::InputVnlVectorType | InputVnlVectorType |
typedef Superclass::OutputVnlVectorType | OutputVnlVectorType |
typedef Superclass ::NonZeroJacobianIndicesType | NonZeroJacobianIndicesType |
typedef Superclass::SpatialJacobianType | SpatialJacobianType |
typedef Superclass ::JacobianOfSpatialJacobianType | JacobianOfSpatialJacobianType |
typedef Superclass::SpatialHessianType | SpatialHessianType |
typedef Superclass ::JacobianOfSpatialHessianType | JacobianOfSpatialHessianType |
typedef Superclass::InternalMatrixType | InternalMatrixType |
typedef DefaultStaticMeshTraits< TScalarType, NDimensions, NDimensions, TScalarType, TScalarType > | PointSetTraitsType |
typedef PointSet< InputPointType, NDimensions, PointSetTraitsType > | PointSetType |
typedef PointSetType::Pointer | PointSetPointer |
typedef PointSetType::PointsContainer | PointsContainer |
typedef PointSetType::PointsContainerConstIterator | PointsConstIterator |
typedef VectorContainer< unsigned long, InputVectorType > | VectorSetType |
typedef VectorSetType::Pointer | VectorSetPointer |
typedef vnl_matrix_fixed< TScalarType, NDimensions, NDimensions > | IMatrixType |
typedef vnl_matrix< TScalarType > | LMatrixType |
typedef vnl_matrix< TScalarType > | KMatrixType |
typedef vnl_matrix< TScalarType > | PMatrixType |
typedef vnl_matrix< TScalarType > | YMatrixType |
typedef vnl_matrix< TScalarType > | WMatrixType |
typedef vnl_matrix< TScalarType > | DMatrixType |
typedef vnl_matrix_fixed< TScalarType, NDimensions, NDimensions > | AMatrixType |
typedef vnl_vector_fixed< TScalarType, NDimensions > | BMatrixType |
typedef vnl_matrix_fixed< TScalarType, 1, NDimensions > | RowMatrixType |
typedef vnl_matrix_fixed< TScalarType, NDimensions, 1 > | ColumnMatrixType |
Protected Types inherited from itk::KernelTransform2< TScalarType, 3 >
Name | |
---|---|
typedef vnl_svd< ScalarType > | SVDDecompositionType |
typedef vnl_qr< ScalarType > | QRDecompositionType |
Public Functions inherited from itk::KernelTransform2< TScalarType, 3 >
Name | |
---|---|
virtual NumberOfParametersType | GetNumberOfParameters(void ) const |
itkGetObjectMacro(SourceLandmarks , PointSetType ) | |
virtual void | SetSourceLandmarks(PointSetType * ) |
itkGetObjectMacro(TargetLandmarks , PointSetType ) | |
virtual void | SetTargetLandmarks(PointSetType * ) |
itkGetObjectMacro(Displacements , VectorSetType ) | |
void | ComputeWMatrix(void ) |
void | ComputeLInverse(void ) |
virtual OutputPointType | TransformPoint(const InputPointType & thisPoint) const |
virtual OutputVectorType | TransformVector(const InputVectorType & ) const |
virtual OutputVnlVectorType | TransformVector(const InputVnlVectorType & ) const |
virtual OutputCovariantVectorType | TransformCovariantVector(const InputCovariantVectorType & ) const |
virtual void | GetJacobian(const InputPointType & , JacobianType & , NonZeroJacobianIndicesType & ) const |
virtual void | SetIdentity(void ) |
virtual void | SetParameters(const ParametersType & ) |
virtual void | SetFixedParameters(const ParametersType & ) |
virtual void | UpdateParameters(void ) |
virtual const ParametersType & | GetParameters(void ) const |
virtual const ParametersType & | GetFixedParameters(void ) const |
virtual void | SetStiffness(double stiffness) |
itkGetMacro(Stiffness , double ) | |
virtual void | SetAlpha(TScalarType itkNotUsedAlpha) |
virtual TScalarType | GetAlpha(void ) const |
itkSetMacro(PoissonRatio , TScalarType ) | |
virtual const TScalarType | GetPoissonRatio(void ) const |
itkSetMacro(MatrixInversionMethod , std::string ) | |
itkGetConstReferenceMacro(MatrixInversionMethod , std::string ) | |
virtual void | GetSpatialJacobian(const InputPointType & ipp, SpatialJacobianType & sj) const |
virtual void | GetSpatialHessian(const InputPointType & ipp, SpatialHessianType & sh) const |
virtual void | GetJacobianOfSpatialJacobian(const InputPointType & ipp, JacobianOfSpatialJacobianType & jsj, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const |
virtual void | GetJacobianOfSpatialJacobian(const InputPointType & ipp, SpatialJacobianType & sj, JacobianOfSpatialJacobianType & jsj, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const |
virtual void | GetJacobianOfSpatialHessian(const InputPointType & ipp, JacobianOfSpatialHessianType & jsh, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const |
virtual void | GetJacobianOfSpatialHessian(const InputPointType & ipp, SpatialHessianType & sh, JacobianOfSpatialHessianType & jsh, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const |
Protected Functions inherited from itk::KernelTransform2< TScalarType, 3 >
Name | |
---|---|
KernelTransform2() | |
virtual | ~KernelTransform2() |
void | PrintSelf(std::ostream & os, Indent indent) const |
virtual void | ComputeReflexiveG(PointsIterator , GMatrixType & GMatrix) const |
void | ComputeK(void ) |
void | ComputeL(void ) |
void | ComputeP(void ) |
void | ComputeY(void ) |
void | ComputeD(void ) |
void | ReorganizeW(void ) |
Public Attributes inherited from itk::KernelTransform2< TScalarType, 3 >
Name | |
---|---|
PointSetPointer | m_SourceLandmarks |
PointSetPointer | m_TargetLandmarks |
Protected Attributes inherited from itk::KernelTransform2< TScalarType, 3 >
Public Types inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
Name | |
---|---|
typedef Superclass::ParametersValueType | ParametersValueType |
typedef Superclass::NumberOfParametersType | NumberOfParametersType |
typedef Superclass::DerivativeType | DerivativeType |
typedef Superclass::InputVnlVectorType | InputVnlVectorType |
typedef Superclass::OutputVnlVectorType | OutputVnlVectorType |
typedef Superclass::InverseTransformBaseType | InverseTransformBaseType |
typedef Superclass::InverseTransformBasePointer | InverseTransformBasePointer |
typedef Transform< TScalarType, NInputDimensions, NOutputDimensions > | TransformType |
typedef TransformType::Pointer | TransformTypePointer |
typedef TransformType::ConstPointer | TransformTypeConstPointer |
typedef std::vector< unsigned long > | NonZeroJacobianIndicesType |
typedef Matrix< ScalarType, OutputSpaceDimension, InputSpaceDimension > | SpatialJacobianType |
typedef std::vector< SpatialJacobianType > | JacobianOfSpatialJacobianType |
typedef FixedArray< Matrix< ScalarType, InputSpaceDimension, InputSpaceDimension >, OutputSpaceDimension > | SpatialHessianType |
typedef std::vector< SpatialHessianType > | JacobianOfSpatialHessianType |
typedef SpatialJacobianType::InternalMatrixType | InternalMatrixType |
typedef OutputCovariantVectorType | MovingImageGradientType |
typedef MovingImageGradientType::ValueType | MovingImageGradientValueType |
Public Functions inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
Name | |
---|---|
virtual NumberOfParametersType | GetNumberOfNonZeroJacobianIndices(void ) const |
itkGetConstMacro(HasNonZeroSpatialHessian , bool ) | |
itkGetConstMacro(HasNonZeroJacobianOfSpatialHessian , bool ) | |
virtual void | GetJacobian(const InputPointType & ipp, JacobianType & j, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const =0 |
virtual void | EvaluateJacobianWithImageGradientProduct(const InputPointType & ipp, const MovingImageGradientType & movingImageGradient, DerivativeType & imageJacobian, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const |
virtual void | GetSpatialJacobian(const InputPointType & ipp, SpatialJacobianType & sj) const =0 |
virtual void | ComputeJacobianWithRespectToParameters(const InputPointType & itkNotUsedp, JacobianType & itkNotUsedj) const |
virtual void | ComputeJacobianWithRespectToPosition(const InputPointType & itkNotUsedp, JacobianType & itkNotUsedj) const |
virtual void | GetSpatialHessian(const InputPointType & ipp, SpatialHessianType & sh) const =0 |
virtual void | GetJacobianOfSpatialJacobian(const InputPointType & ipp, JacobianOfSpatialJacobianType & jsj, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const =0 |
virtual void | GetJacobianOfSpatialJacobian(const InputPointType & ipp, SpatialJacobianType & sj, JacobianOfSpatialJacobianType & jsj, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const =0 |
virtual void | GetJacobianOfSpatialHessian(const InputPointType & ipp, JacobianOfSpatialHessianType & jsh, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const =0 |
virtual void | GetJacobianOfSpatialHessian(const InputPointType & ipp, SpatialHessianType & sh, JacobianOfSpatialHessianType & jsh, NonZeroJacobianIndicesType & nonZeroJacobianIndices) const =0 |
Protected Functions inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
Name | |
---|---|
AdvancedTransform() | |
AdvancedTransform(NumberOfParametersType numberOfParameters) | |
virtual | ~AdvancedTransform() |
Protected Attributes inherited from itk::AdvancedTransform< TScalarType, NDimensions, NDimensions >
Name | |
---|---|
bool | m_HasNonZeroSpatialHessian |
bool | m_HasNonZeroJacobianOfSpatialHessian |
Detailed Description
template <class TScalarType ,
unsigned int NDimensions =3>
class itk::ThinPlateSplineKernelTransform2;
This class defines the thin plate spline (TPS) transformation. It is implemented in as straightforward a manner as possible from the IEEE TMI paper by Davis, Khotanzad, Flamig, and Harms, Vol. 16 No. 3 June 1997
Public Types Documentation
typedef Self
typedef ThinPlateSplineKernelTransform2 itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::Self;
Standard class typedefs.
typedef Superclass
typedef KernelTransform2< TScalarType, NDimensions > itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::Superclass;
typedef Pointer
typedef SmartPointer< Self > itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::Pointer;
typedef ConstPointer
typedef SmartPointer< const Self > itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ConstPointer;
typedef ScalarType
typedef Superclass::ScalarType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ScalarType;
Scalar type.
typedef ParametersType
typedef Superclass::ParametersType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::ParametersType;
Parameters type.
typedef JacobianType
typedef Superclass::JacobianType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::JacobianType;
Jacobian Type
typedef InputPointType
typedef Superclass::InputPointType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::InputPointType;
These (rather redundant) typedefs are needed because on SGI, typedefs are not inherited.
typedef OutputPointType
typedef Superclass::OutputPointType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::OutputPointType;
typedef InputVectorType
typedef Superclass::InputVectorType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::InputVectorType;
typedef OutputVectorType
typedef Superclass::OutputVectorType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::OutputVectorType;
typedef InputCovariantVectorType
typedef Superclass::InputCovariantVectorType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::InputCovariantVectorType;
typedef OutputCovariantVectorType
typedef Superclass::OutputCovariantVectorType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::OutputCovariantVectorType;
typedef PointsIterator
typedef Superclass::PointsIterator itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::PointsIterator;
Protected Types Documentation
typedef GMatrixType
typedef Superclass::GMatrixType itk::ThinPlateSplineKernelTransform2< TScalarType, NDimensions >::GMatrixType;
These (rather redundant) typedefs are needed because on SGI, typedefs are not inherited.
Public Functions Documentation
function itkNewMacro
itkNewMacro(
Self
)
New macro for creation of through a Smart Pointer
function itkTypeMacro
itkTypeMacro(
ThinPlateSplineKernelTransform2 ,
KernelTransform2
)
Run-time type information (and related methods).
function itkStaticConstMacro
itkStaticConstMacro(
SpaceDimension ,
unsigned int ,
Superclass::SpaceDimension
)
Dimension of the domain space.
function SetSigma
inline void SetSigma(
double sigma
)
Protected Functions Documentation
function ThinPlateSplineKernelTransform2
inline ThinPlateSplineKernelTransform2()
function ~ThinPlateSplineKernelTransform2
inline virtual ~ThinPlateSplineKernelTransform2()
function ComputeG
virtual void ComputeG(
const InputVectorType & x,
GMatrixType & GMatrix
) const
Reimplements: itk::KernelTransform2::ComputeG
Compute G(x) For the thin plate spline, this is: G(x) = r(x)*I \( G(x) = r(x)*I \) where r(x) = Euclidean norm = sqrt[x1^2 + x2^2 + x3^2] I = identity matrix.
function ComputeDeformationContribution
virtual void ComputeDeformationContribution(
const InputPointType & inputPoint,
OutputPointType & result
) const
Reimplements: itk::KernelTransform2::ComputeDeformationContribution
Compute the contribution of the landmarks weighted by the kernel function to the global deformation of the space.
Updated on 2022-07-23 at 16:40:06 -0600