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:
Inheritance graph
[legend]
Collaboration diagram for vtkPCAAnalysisFilter:
Collaboration graph
[legend]

List of all members.

Public Types

typedef
vtkMultiBlockDataSetAlgorithm 
Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkPCAAnalysisFilterNewInstance () const
void PrintSelf (ostream &os, vtkIndent indent)
void GetParameterisedShape (vtkFloatArray *b, vtkPointSet *shape)
void GetShapeParameters (vtkPointSet *shape, vtkFloatArray *b, int bsize)
int GetModesRequiredFor (double proportion)
virtual vtkFloatArrayGetEvals ()

Static Public Member Functions

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

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkPCAAnalysisFilter ()
 ~vtkPCAAnalysisFilter ()
virtual int RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *)

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 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.


Member Typedef Documentation

Reimplemented from vtkMultiBlockDataSetAlgorithm.

Definition at line 64 of file vtkPCAAnalysisFilter.h.


Constructor & Destructor Documentation


Member Function Documentation

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 vtkMultiBlockDataSetAlgorithm.

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 vtkMultiBlockDataSetAlgorithm.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

virtual vtkObjectBase* vtkPCAAnalysisFilter::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkMultiBlockDataSetAlgorithm.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

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

Prints information about the state of the filter.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

Creates with similarity transform.

Reimplemented from vtkMultiBlockDataSetAlgorithm.

Get the vector of eigenvalues sorted in descending order

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.

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]

Retrieve how many modes are necessary to model the given proportion of the variation. proportion should be between 0 and 1

Usual data generation method.

Reimplemented from vtkMultiBlockDataSetAlgorithm.


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