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 );
83 {
return ( vcl_exp( u * m_OneOverMinusTwoSigmaSqr )); }
89 { Superclass::PrintSelf( os, indent ); }
98 typename TVectorFieldElementType,
100 typename TPointSetPixelType = float,
101 typename TPointSetCoordRepType = float,
139 itkStaticConstMacro(InputMeshDimension,
unsigned int,
140 TPointSetType::PointDimension);
176 itkSetMacro( ComponentCount,
unsigned int );
177 itkGetMacro( ComponentCount,
unsigned int );
195 itkGetConstReferenceMacro(AveVectorField,
MatrixType);
196 itkGetConstReferenceMacro(PCAEigenValues,
VectorType);
203 void PrintSelf(std::ostream& os,
Indent indent)
const;
205 void KernelPCA(
void);
206 void computeMomentumSCP(
void);
211 void operator=(
const Self&);
237 #include "itkVectorFieldPCA.hxx"
unsigned int m_ComponentCount
VectorType m_PCAEigenValues
SmartPointer< Self > Pointer
Light weight base class for most itk classes.
double Evaluate(const double &u) const
Evaluate the function. Input is the squared distance.
SmartPointer< Self > Pointer
InputPointSetPointer m_PointSet
void PrintSelf(std::ostream &os, Indent indent) const
Produce the principle components of a vector valued function.
InputPointSetType::ConstPointer InputPointSetConstPointer
VectorContainer< unsigned int, VectorType > ResSetType
VectorFieldSetType::ConstPointer VectorFieldSetTypeConstPointer
double m_OneOverMinusTwoSigmaSqr
MatrixType m_AveVectorField
Kernel used for density estimation and nonparameteric regression.
BasisSetType::Pointer BasisSetTypePointer
KernelFunctionBase< TRealValueType > Superclass
VectorContainer< unsigned int, MatrixType > BasisSetType
unsigned int m_VectorDimCount
ImageBaseType::PointType PointType
vnl_matrix< TVectorFieldElementType > VectorFieldType
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
KernelFunction is for backward compatibility with ITKv3.
PointsContainer::Iterator PointsContainerIterator
TPointSetType InputPointSetType
VectorFieldSetType::Pointer VectorFieldSetTypePointer
virtual ~VectorFieldPCA()
SmartPointer< const Self > ConstPointer
SmartPointer< const Self > ConstPointer
VectorContainer< unsigned int, VectorFieldType > VectorFieldSetType
KernelFunctionPointer m_KernelFunction
InputPointSetType::Pointer InputPointSetPointer
InputPointSetType::PointType InputPointType
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.
GaussianDistanceKernel Self
BasisSetTypePointer m_BasisVectors
KernelFunctionType::Pointer KernelFunctionPointer
~GaussianDistanceKernel()
void SetKernelSigma(double s)
Set and get the Kernel sigma.
vnl_vector< TPCType > VectorType
vnl_matrix< TPCType > MatrixType
Base class for most ITK classes.
InputPointSetType::PointsContainer PointsContainer