VTK
|
Performs principal component analysis of a set of aligned pointsets. More...
#include <vtkPCAAnalysisFilter.h>
Public Types | |
typedef vtkPointSetAlgorithm | Superclass |
![]() | |
typedef vtkAlgorithm | Superclass |
![]() | |
typedef vtkObject | Superclass |
![]() | |
typedef vtkObjectBase | Superclass |
Public Member Functions | |
virtual const char * | GetClassName () |
virtual int | IsA (const char *type) |
void | PrintSelf (ostream &os, vtkIndent indent) |
void | SetNumberOfInputs (int n) |
vtkPointSet * | GetInput (int idx) |
void | GetParameterisedShape (vtkFloatArray *b, vtkPointSet *shape) |
void | GetShapeParameters (vtkPointSet *shape, vtkFloatArray *b, int bsize) |
int | GetModesRequiredFor (double proportion) |
virtual vtkFloatArray * | GetEvals () |
void | SetInput (int idx, vtkPointSet *p) |
void | SetInput (int idx, vtkDataObject *input) |
![]() | |
vtkPolyData * | GetPolyDataOutput () |
vtkStructuredGrid * | GetStructuredGridOutput () |
vtkUnstructuredGrid * | GetUnstructuredGridOutput () |
vtkDataObject * | GetInput () |
vtkPointSet * | GetOutput () |
vtkPointSet * | GetOutput (int) |
void | SetInput (vtkDataObject *) |
void | SetInput (vtkPointSet *) |
void | AddInput (vtkDataObject *) |
void | AddInput (vtkPointSet *) |
void | AddInput (int, vtkPointSet *) |
void | AddInput (int, vtkDataObject *) |
virtual int | ProcessRequest (vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) |
![]() | |
int | HasExecutive () |
vtkExecutive * | GetExecutive () |
virtual void | SetExecutive (vtkExecutive *executive) |
virtual int | ModifyRequest (vtkInformation *request, int when) |
vtkInformation * | GetInputPortInformation (int port) |
vtkInformation * | GetOutputPortInformation (int port) |
int | GetNumberOfInputPorts () |
int | GetNumberOfOutputPorts () |
void | UpdateProgress (double amount) |
vtkInformation * | GetInputArrayInformation (int idx) |
void | RemoveAllInputs () |
vtkDataObject * | GetOutputDataObject (int port) |
virtual void | RemoveInputConnection (int port, vtkAlgorithmOutput *input) |
int | GetNumberOfInputConnections (int port) |
int | GetTotalNumberOfInputConnections () |
vtkAlgorithmOutput * | GetInputConnection (int port, int index) |
virtual void | Update () |
virtual void | UpdateInformation () |
virtual void | UpdateWholeExtent () |
void | ConvertTotalInputToPortConnection (int ind, int &port, int &conn) |
virtual double | ComputePriority () |
int | ProcessRequest (vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo) |
virtual int | ComputePipelineMTime (vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, unsigned long *mtime) |
virtual vtkInformation * | GetInformation () |
virtual void | SetInformation (vtkInformation *) |
virtual void | Register (vtkObjectBase *o) |
virtual void | UnRegister (vtkObjectBase *o) |
virtual void | SetAbortExecute (int) |
virtual int | GetAbortExecute () |
virtual void | AbortExecuteOn () |
virtual void | AbortExecuteOff () |
virtual void | SetProgress (double) |
virtual double | GetProgress () |
void | SetProgressText (const char *ptext) |
virtual char * | GetProgressText () |
virtual unsigned long | GetErrorCode () |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, const char *name) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, int fieldAssociation, int fieldAttributeType) |
virtual void | SetInputArrayToProcess (int idx, vtkInformation *info) |
virtual void | SetInputArrayToProcess (int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName) |
vtkDataObject * | GetInputDataObject (int port, int connection) |
virtual void | SetInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | SetInputConnection (vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (int port, vtkAlgorithmOutput *input) |
virtual void | AddInputConnection (vtkAlgorithmOutput *input) |
vtkAlgorithmOutput * | GetOutputPort (int index) |
vtkAlgorithmOutput * | GetOutputPort () |
virtual void | SetReleaseDataFlag (int) |
virtual int | GetReleaseDataFlag () |
void | ReleaseDataFlagOn () |
void | ReleaseDataFlagOff () |
int | UpdateExtentIsEmpty (vtkDataObject *output) |
int | UpdateExtentIsEmpty (vtkInformation *pinfo, int extentType) |
![]() | |
virtual void | DebugOn () |
virtual void | DebugOff () |
unsigned char | GetDebug () |
void | SetDebug (unsigned char debugFlag) |
virtual void | Modified () |
virtual unsigned long | GetMTime () |
unsigned long | AddObserver (unsigned long event, vtkCommand *, float priority=0.0f) |
unsigned long | AddObserver (const char *event, vtkCommand *, float priority=0.0f) |
vtkCommand * | GetCommand (unsigned long tag) |
void | RemoveObserver (vtkCommand *) |
void | RemoveObservers (unsigned long event, vtkCommand *) |
void | RemoveObservers (const char *event, vtkCommand *) |
int | HasObserver (unsigned long event, vtkCommand *) |
int | HasObserver (const char *event, vtkCommand *) |
void | RemoveObserver (unsigned long tag) |
void | RemoveObservers (unsigned long event) |
void | RemoveObservers (const char *event) |
void | RemoveAllObservers () |
int | HasObserver (unsigned long event) |
int | HasObserver (const char *event) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) |
template<class U , class T > | |
unsigned long | AddObserver (unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) |
int | InvokeEvent (unsigned long event, void *callData) |
int | InvokeEvent (const char *event, void *callData) |
int | InvokeEvent (unsigned long event) |
int | InvokeEvent (const char *event) |
![]() | |
const char * | GetClassName () const |
virtual void | Delete () |
virtual void | FastDelete () |
void | Print (ostream &os) |
void | SetReferenceCount (int) |
void | PrintRevisions (ostream &os) |
virtual void | PrintHeader (ostream &os, vtkIndent indent) |
virtual void | PrintTrailer (ostream &os, vtkIndent indent) |
int | GetReferenceCount () |
Static Public Member Functions | |
static int | IsTypeOf (const char *type) |
static vtkPCAAnalysisFilter * | SafeDownCast (vtkObject *o) |
static vtkPCAAnalysisFilter * | New () |
Additional Inherited Members | |
![]() | |
int | AbortExecute |
![]() | |
static vtkInformationIntegerKey * | PORT_REQUIREMENTS_FILLED () |
![]() | |
vtkInformation * | Information |
double | Progress |
char * | ProgressText |
unsigned long | ErrorCode |
![]() | |
static vtkExecutive * | DefaultExecutivePrototype |
![]() |
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/
Definition at line 61 of file vtkPCAAnalysisFilter.h.
Definition at line 64 of file vtkPCAAnalysisFilter.h.
|
protected |
|
protected |
|
virtual |
Reimplemented from vtkPointSetAlgorithm.
|
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 |
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 |
Reimplemented from vtkPointSetAlgorithm.
|
virtual |
Prints information about the state of the filter.
Reimplemented from vtkPointSetAlgorithm.
|
static |
Creates with similarity transform.
Reimplemented from vtkPointSetAlgorithm.
|
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
|
protectedvirtual |
Usual data generation method.
Reimplemented from vtkPointSetAlgorithm.
|
protectedvirtual |
Usual data generation method.
Reimplemented from vtkPointSetAlgorithm.