vtkPCAAnalysisFilter Class Reference

#include <vtkPCAAnalysisFilter.h>

Inheritance diagram for vtkPCAAnalysisFilter:

Inheritance graph
[legend]
Collaboration diagram for vtkPCAAnalysisFilter:

Collaboration graph
[legend]

List of all members.


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.


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)

Member Typedef Documentation

Reimplemented from vtkPointSetAlgorithm.

Definition at line 64 of file vtkPCAAnalysisFilter.h.


Constructor & Destructor Documentation

vtkPCAAnalysisFilter::vtkPCAAnalysisFilter (  )  [protected]

vtkPCAAnalysisFilter::~vtkPCAAnalysisFilter (  )  [protected]


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.

static vtkPCAAnalysisFilter* vtkPCAAnalysisFilter::SafeDownCast ( vtkObject o  )  [static]

Reimplemented from vtkPointSetAlgorithm.

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

Prints information about the state of the filter.

Reimplemented from vtkPointSetAlgorithm.

static vtkPCAAnalysisFilter* vtkPCAAnalysisFilter::New (  )  [static]

Creates with similarity transform.

Reimplemented from vtkPointSetAlgorithm.

virtual vtkFloatArray* vtkPCAAnalysisFilter::GetEvals (  )  [virtual]

Get the vector of eigenvalues sorted in descending order

void vtkPCAAnalysisFilter::SetNumberOfInputs ( int  n  ) 

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.

vtkPointSet* vtkPCAAnalysisFilter::GetInput ( int  idx  ) 

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

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

Generated on Wed Aug 24 11:54:10 2011 for VTK by  doxygen 1.5.6