Shapeworks Studio  2.1
Shape analysis software suite
List of all members | Public Types | Public Member Functions | Protected Types | Protected Member Functions
itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions > Class Template Reference
+ Inheritance diagram for itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >:
+ Collaboration diagram for itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >:

Public Types

typedef CompactlySupportedRBFSparseKernelTransform Self
 
typedef SparseKernelTransform< TScalarType, NDimensions > Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
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
 
- Public Types inherited from itk::SparseKernelTransform< TScalarType, NDimensions >
typedef SparseKernelTransform Self
 
typedef Transform< TScalarType, NDimensions, NDimensions > Superclass
 
typedef SmartPointer< SelfPointer
 
typedef SmartPointer< const SelfConstPointer
 
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 DefaultStaticMeshTraits< TScalarType, NDimensions, NDimensions, TScalarType, TScalarType > PointSetTraitsType
 
typedef PointSet< InputPointType, NDimensions, PointSetTraitsTypePointSetType
 
typedef PointSetType::Pointer PointSetPointer
 
typedef PointSetType::PointsContainer PointsContainer
 
typedef PointSetType::PointsContainerIterator PointsIterator
 
typedef PointSetType::PointsContainerConstIterator PointsConstIterator
 
typedef itk::VectorContainer< unsigned long, InputVectorTypeVectorSetType
 
typedef VectorSetType::Pointer VectorSetPointer
 
typedef Eigen::Matrix< TScalarType, NDimensions, NDimensions > IMatrixType
 
typedef Eigen::Triplet< TScalarType > TripletType
 
typedef Eigen::Matrix< TScalarType, NDimensions, NDimensions > GMatrixType
 
typedef Eigen::SparseMatrix< TScalarType > LMatrixType
 
typedef Eigen::SparseMatrix< TScalarType > KMatrixType
 
typedef Eigen::SparseMatrix< TScalarType > PMatrixType
 
typedef Eigen::Matrix< TScalarType, Eigen::Dynamic, Eigen::Dynamic > YMatrixType
 
typedef Eigen::Matrix< TScalarType, Eigen::Dynamic, Eigen::Dynamic > WMatrixType
 
typedef Eigen::Matrix< TScalarType, Eigen::Dynamic, Eigen::Dynamic > DMatrixType
 
typedef Eigen::Matrix< TScalarType, NDimensions, NDimensions > AMatrixType
 
typedef Eigen::Matrix< TScalarType, NDimensions, 1 > BMatrixType
 
typedef Eigen::Matrix< TScalarType, 1, NDimensions > RowMatrixType
 
typedef Eigen::Matrix< TScalarType, NDimensions, 1 > ColumnMatrixType
 

Public Member Functions

 itkNewMacro (Self)
 
 itkTypeMacro (CompactlySupportedRBFSparseKernelTransform, SparseKernelTransform)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, Superclass::SpaceDimension)
 
void SetSigma (double sigma)
 
virtual void ComputeJacobianWithRespectToParameters (const InputPointType &in, JacobianType &jacobian) const
 
- Public Member Functions inherited from itk::SparseKernelTransform< TScalarType, NDimensions >
 itkTypeMacro (SparseKernelTransform, Transform)
 
 itkNewMacro (Self)
 
 itkStaticConstMacro (SpaceDimension, unsigned int, NDimensions)
 
 itkGetObjectMacro (SourceLandmarks, PointSetType)
 
virtual void SetSourceLandmarks (PointSetType *)
 
 itkGetObjectMacro (TargetLandmarks, PointSetType)
 
virtual void SetTargetLandmarks (PointSetType *)
 
 itkGetObjectMacro (Displacements, VectorSetType)
 
void ComputeWMatrix (void) const
 
virtual OutputPointType TransformPoint (const InputPointType &thisPoint) const
 
virtual void SetIdentity ()
 
virtual void SetParameters (const ParametersType &)
 
virtual void SetFixedParameters (const ParametersType &)
 
virtual void UpdateParameters (void) const
 
virtual const ParametersTypeGetParameters (void) const
 
virtual const ParametersTypeGetFixedParameters (void) const
 
virtual void SetStiffness (double stiffness)
 
 itkGetMacro (Stiffness, double)
 

Protected Types

typedef Superclass::GMatrixType GMatrixType
 

Protected Member Functions

const GMatrixTypeComputeG (const InputVectorType &x) const
 
virtual void ComputeDeformationContribution (const InputPointType &inputPoint, OutputPointType &result) const
 
- Protected Member Functions inherited from itk::SparseKernelTransform< TScalarType, NDimensions >
void PrintSelf (std::ostream &os, Indent indent) const
 
virtual const GMatrixTypeComputeReflexiveG (PointsIterator) const
 
void ComputeK () const
 
void ComputeL () const
 
void ComputeP () const
 
void ComputeY () const
 
void ComputeD () const
 
void ReorganizeW (void) const
 

Additional Inherited Members

- Public Attributes inherited from itk::SparseKernelTransform< TScalarType, NDimensions >
PointSetPointer m_SourceLandmarks
 
PointSetPointer m_TargetLandmarks
 
- Protected Attributes inherited from itk::SparseKernelTransform< TScalarType, NDimensions >
double m_Stiffness
 
VectorSetPointer m_Displacements
 
LMatrixType m_LMatrix
 
LMatrixType m_LMatrixInverse
 
KMatrixType m_KMatrix
 
PMatrixType m_PMatrix
 
YMatrixType m_YMatrix
 
WMatrixType m_WMatrix
 
DMatrixType m_DMatrix
 
AMatrixType m_AMatrix
 
BMatrixType m_BVector
 
GMatrixType m_GMatrix
 
bool m_WMatrixComputed
 
bool m_LMatrixComputed
 
bool m_LInverseComputed
 
IMatrixType m_I
 

Detailed Description

template<class TScalarType, unsigned int NDimensions = 3>
class itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >

Definition at line 29 of file itkCompactlySupportedRBFSparseKernelTransform.h.

Member Typedef Documentation

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::GMatrixType itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::GMatrixType
protected

These (rather redundant) typedefs are needed because on SGI, typedefs are not inherited.

Definition at line 80 of file itkCompactlySupportedRBFSparseKernelTransform.h.

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::InputPointType itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::InputPointType

These (rather redundant) typedefs are needed because on SGI, typedefs are not inherited

Definition at line 59 of file itkCompactlySupportedRBFSparseKernelTransform.h.

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::JacobianType itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::JacobianType

Jacobian Type

Definition at line 52 of file itkCompactlySupportedRBFSparseKernelTransform.h.

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::ParametersType itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::ParametersType

Parameters type.

Definition at line 49 of file itkCompactlySupportedRBFSparseKernelTransform.h.

template<class TScalarType , unsigned int NDimensions = 3>
typedef Superclass::ScalarType itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::ScalarType

Scalar type.

Definition at line 46 of file itkCompactlySupportedRBFSparseKernelTransform.h.

template<class TScalarType , unsigned int NDimensions = 3>
typedef CompactlySupportedRBFSparseKernelTransform itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::Self

Standard class typedefs.

Definition at line 34 of file itkCompactlySupportedRBFSparseKernelTransform.h.

Member Function Documentation

template<class TScalarType , unsigned int NDimensions>
void itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::ComputeDeformationContribution ( const InputPointType inputPoint,
OutputPointType &  result 
) const
protectedvirtual

Compute the contribution of the landmarks weighted by the kernel funcion to the global deformation of the space

Reimplemented from itk::SparseKernelTransform< TScalarType, NDimensions >.

Definition at line 57 of file itkCompactlySupportedRBFSparseKernelTransform.hxx.

59 {
60 
61  double a = 3.0 * sqrt(3.14/2.0) * this->Sigma;
62 
63  unsigned long numberOfLandmarks = this->m_SourceLandmarks->GetNumberOfPoints();
64 
65  PointsIterator sp = this->m_SourceLandmarks->GetPoints()->Begin();
66 
67  for(unsigned int lnd=0; lnd < numberOfLandmarks; lnd++ )
68  {
69  InputVectorType position = thisPoint - sp->Value();
70  const TScalarType r = (position.GetNorm())/a; // the support of the basis is only defined till 2.5*sigma
71 
72  TScalarType val = 0.0;
73  if(r <= 1)
74  val = pow(1-r, 4.0) * (4.0*r + 1);
75 
76  for(unsigned int odim=0; odim < NDimensions; odim++ )
77  {
78  result[ odim ] += val * this->m_DMatrix(odim,lnd);
79  }
80  ++sp;
81  }
82 
83 }
template<class TScalarType , unsigned int NDimensions>
const CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::GMatrixType & itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::ComputeG ( const InputVectorType &  landmarkVector) const
protectedvirtual

Compute G(x) This is essentially the kernel of the transform. By overriding this method, we can obtain (among others): Elastic body spline Thin plate spline Volume spline

Reimplemented from itk::SparseKernelTransform< TScalarType, NDimensions >.

Definition at line 31 of file itkCompactlySupportedRBFSparseKernelTransform.hxx.

32 {
33  double a = 3.0 * sqrt(3.14/2.0) * this->Sigma;
34 
35  const TScalarType r = (x.GetNorm())/a; // the support of the basis is only defined till 2.5*sigma
36  this->m_GMatrix = GMatrixType::Zero();
37 
38  if (r <= 1)
39  {
40  //this->m_GMatrix.fill( NumericTraits< TScalarType >::Zero );
41 
42  TScalarType val = pow(1-r, 4.0) * (4.0*r + 1);
43  for(unsigned int i=0; i<NDimensions; i++)
44  {
45  this->m_GMatrix(i,i) = val;
46 
47  //this->m_GMatrix[i][i] = val;
48  }
49  }
50  return this->m_GMatrix;
51 }
template<class TScalarType , unsigned int NDimensions = 3>
itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::itkNewMacro ( Self  )

New macro for creation of through a Smart Pointer

template<class TScalarType , unsigned int NDimensions = 3>
itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::itkStaticConstMacro ( SpaceDimension  ,
unsigned  int,
Superclass::SpaceDimension   
)

Dimension of the domain space.

template<class TScalarType , unsigned int NDimensions = 3>
itk::CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >::itkTypeMacro ( CompactlySupportedRBFSparseKernelTransform< TScalarType, NDimensions >  ,
SparseKernelTransform   
)

Run-time type information (and related methods).


The documentation for this class was generated from the following files: