VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions
vtkPCAAnalysisFilter Class Reference

Performs principal component analysis of a set of aligned pointsets. More...

#include <vtkPCAAnalysisFilter.h>

Inheritance diagram for vtkPCAAnalysisFilter:
[legend]
Collaboration diagram for vtkPCAAnalysisFilter:
[legend]

List of all members.

Public Types

typedef vtkPointSetAlgorithm Superclass

Public Member Functions

virtual const char * GetClassName ()
virtual int IsA (const char *type)
void PrintSelf (ostream &os, vtkIndent indent)
void SetNumberOfInputs (int n)
vtkPointSetGetInput (int idx)
void GetParameterisedShape (vtkFloatArray *b, vtkPointSet *shape)
void GetShapeParameters (vtkPointSet *shape, vtkFloatArray *b, int bsize)
int GetModesRequiredFor (double proportion)
virtual vtkFloatArrayGetEvals ()
void SetInput (int idx, vtkPointSet *p)
void SetInput (int idx, vtkDataObject *input)

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkPCAAnalysisFilterSafeDownCast (vtkObject *o)
static vtkPCAAnalysisFilterNew ()

Protected Member Functions

 vtkPCAAnalysisFilter ()
 ~vtkPCAAnalysisFilter ()
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual int FillInputPortInformation (int port, vtkInformation *info)

Detailed Description

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

Call SetNumberOfInputs(n) before calling SetInput(0) ... SetInput(n-1). Retrieve the outputs using GetOutput(0) ... GetOutput(n-1).

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.


Member Typedef Documentation

Reimplemented from vtkPointSetAlgorithm.

Definition at line 64 of file vtkPCAAnalysisFilter.h.


Constructor & Destructor Documentation


Member Function Documentation

virtual const char* vtkPCAAnalysisFilter::GetClassName ( ) [virtual]

Reimplemented from vtkPointSetAlgorithm.

static int vtkPCAAnalysisFilter::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPointSetAlgorithm.

virtual int vtkPCAAnalysisFilter::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkPointSetAlgorithm.

Reimplemented from vtkPointSetAlgorithm.

void vtkPCAAnalysisFilter::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Prints information about the state of the filter.

Reimplemented from vtkPointSetAlgorithm.

Creates with similarity transform.

Reimplemented from vtkPointSetAlgorithm.

Get the vector of eigenvalues sorted in descending order

Specify how many pointsets are going to be given as input.

void vtkPCAAnalysisFilter::SetInput ( int  idx,
vtkPointSet p 
)

Specify the input pointset with index idx. Call SetNumberOfInputs before calling this function.

Reimplemented from vtkPointSetAlgorithm.

void vtkPCAAnalysisFilter::SetInput ( int  idx,
vtkDataObject input 
)

Specify the input pointset with index idx. Call SetNumberOfInputs before calling this function.

Reimplemented from vtkPointSetAlgorithm.

Retrieve the input with index idx (usually only used for pipeline tracing).

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 allready 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  
) [protected, virtual]

Usual data generation method.

Reimplemented from vtkPointSetAlgorithm.

virtual int vtkPCAAnalysisFilter::FillInputPortInformation ( int  port,
vtkInformation info 
) [protected, virtual]

Usual data generation method.

Reimplemented from vtkPointSetAlgorithm.


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