Performs principal component analysis of a set of aligned pointsets.
More...
#include <vtkPCAAnalysisFilter.h>
Inherits vtkMultiBlockDataSetAlgorithm.
Performs principal component analysis of a set of aligned pointsets.
vtkPCAAnalysisFilter is a filter that takes as input a set of aligned pointsets (any object derived from vtkPointSet) and performs a principal component analysis of the coordinates. This can be used to visualise the major or minor modes of variation seen in a set of similar biological objects with corresponding landmarks. vtkPCAAnalysisFilter is designed to work with the output from the vtkProcrustesAnalysisFilter vtkPCAAnalysisFilter requires a vtkMultiBlock input consisting of vtkPointSets as first level children.
vtkPCAAnalysisFilter is an implementation of (for example):
T. Cootes et al. : Active Shape Models - their training and application. Computer Vision and Image Understanding, 61(1):38-59, 1995.
The material can also be found in Tim Cootes' ever-changing online report published at his website: http://www.isbe.man.ac.uk/~bim/
- Warning
- All of the input pointsets must have the same number of points.
- Thanks:
- Rasmus Paulsen and Tim Hutton who developed and contributed this class
- See Also
- vtkProcrustesAlignmentFilter
- Tests:
- vtkPCAAnalysisFilter (Tests)
Definition at line 61 of file vtkPCAAnalysisFilter.h.
vtkPCAAnalysisFilter::vtkPCAAnalysisFilter |
( |
| ) |
|
|
protected |
vtkPCAAnalysisFilter::~vtkPCAAnalysisFilter |
( |
| ) |
|
|
protected |
static int vtkPCAAnalysisFilter::IsTypeOf |
( |
const char * |
type | ) |
|
|
static |
virtual int vtkPCAAnalysisFilter::IsA |
( |
const char * |
type | ) |
|
|
virtual |
virtual vtkObjectBase* vtkPCAAnalysisFilter::NewInstanceInternal |
( |
| ) |
const |
|
protectedvirtual |
void vtkPCAAnalysisFilter::PrintSelf |
( |
ostream & |
os, |
|
|
vtkIndent |
indent |
|
) |
| |
Prints information about the state of the filter.
Creates with similarity transform.
virtual vtkFloatArray* vtkPCAAnalysisFilter::GetEvals |
( |
| ) |
|
|
virtual |
Get the vector of eigenvalues sorted in descending order
void vtkPCAAnalysisFilter::GetParameterisedShape |
( |
vtkFloatArray * |
b, |
|
|
vtkPointSet * |
shape |
|
) |
| |
Fills the shape with: mean + b[0] * sqrt(eigenvalue[0]) * eigenvector[0] + b[1] * sqrt(eigenvalue[1]) * eigenvector[1] ... + b[sizeb-1] * sqrt(eigenvalue[bsize-1]) * eigenvector[bsize-1] here b are the parameters expressed in standard deviations bsize is the number of parameters in the b vector This function assumes that shape is already allocated with the right size, it just moves the points.
void vtkPCAAnalysisFilter::GetShapeParameters |
( |
vtkPointSet * |
shape, |
|
|
vtkFloatArray * |
b, |
|
|
int |
bsize |
|
) |
| |
Return the bsize parameters b that best model the given shape (in standard deviations). That is that the given shape will be approximated by: shape ~ mean + b[0] * sqrt(eigenvalue[0]) * eigenvector[0] + b[1] * sqrt(eigenvalue[1]) * eigenvector[1] ... + b[bsize-1] * sqrt(eigenvalue[bsize-1]) * eigenvector[bsize-1]
int vtkPCAAnalysisFilter::GetModesRequiredFor |
( |
double |
proportion | ) |
|
Retrieve how many modes are necessary to model the given proportion of the variation. proportion should be between 0 and 1
virtual int vtkPCAAnalysisFilter::RequestData |
( |
vtkInformation * |
, |
|
|
vtkInformationVector ** |
, |
|
|
vtkInformationVector * |
|
|
) |
| |
|
protectedvirtual |
Usual data generation method.
The documentation for this class was generated from the following file: