19 #ifndef itkVectorFieldPCA_h
20 #define itkVectorFieldPCA_h
25 #include "vnl/vnl_vector.h"
26 #include "vnl/vnl_matrix.h"
54 template<
typename TRealValueType =
double >
75 m_OneOverMinusTwoSigmaSqr = -1.0 / (2.0 * s * s); }
76 itkGetMacro( KernelSigma,
double );
82 inline double Evaluate (
const double& u)
const override
83 {
return ( std::exp( u * m_OneOverMinusTwoSigmaSqr )); }
89 { Superclass::PrintSelf( os, indent ); }
98 typename TVectorFieldElementType,
100 typename TPointSetPixelType = float,
101 typename TPointSetCoordRepType = float,
141 itkStaticConstMacro(InputMeshDimension,
unsigned int,
142 TPointSetType::PointDimension);
178 itkSetMacro( ComponentCount,
unsigned int );
179 itkGetMacro( ComponentCount,
unsigned int );
197 itkGetConstReferenceMacro(AveVectorField,
MatrixType);
198 itkGetConstReferenceMacro(PCAEigenValues,
VectorType);
205 void PrintSelf(std::ostream& os,
Indent indent)
const override;
211 void ComputeMomentumSCP();
238 #ifndef ITK_MANUAL_INSTANTIATION
239 #include "itkVectorFieldPCA.hxx"
unsigned int m_ComponentCount
VectorType m_PCAEigenValues
typename KernelFunctionType::Pointer KernelFunctionPointer
typename VectorFieldSetType::Pointer VectorFieldSetTypePointer
void PrintSelf(std::ostream &os, Indent indent) const override
Light weight base class for most itk classes.
typename InputPointSetType::ConstPointer InputPointSetConstPointer
InputPointSetPointer m_PointSet
Produce the principle components of a vector valued function.
double Evaluate(const double &u) const override
Evaluate the function. Input is the squared distance.
double m_OneOverMinusTwoSigmaSqr
typename VectorFieldSetType::ConstPointer VectorFieldSetTypeConstPointer
MatrixType m_AveVectorField
Kernel used for density estimation and nonparameteric regression.
~VectorFieldPCA() override
unsigned int m_VectorDimCount
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
vnl_matrix< TPCType > MatrixType
vnl_matrix< TVectorFieldElementType > VectorFieldType
typename InputPointSetType::Pointer InputPointSetPointer
KernelFunctionPointer m_KernelFunction
TPointSetType InputPointSetType
~GaussianDistanceKernel() override
typename InputPointSetType::PointType InputPointType
typename PointsContainer::Iterator PointsContainerIterator
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
VectorFieldSetTypePointer m_VectorFieldSet
unsigned int m_VertexCount
Control indentation during Print() invocation.
BasisSetTypePointer m_BasisVectors
ImageBaseType::PointType PointType
typename InputPointSetType::PointsContainer PointsContainer
void SetKernelSigma(double s)
Set and get the Kernel sigma.
vnl_vector< TPCType > VectorType
Base class for most ITK classes.
typename BasisSetType::Pointer BasisSetTypePointer