|
VTK
|
Performs principal component analysis of a set of aligned pointsets. More...
#include <vtkPCAAnalysisFilter.h>
Public Types | |
| typedef vtkPointSetAlgorithm | Superclass |
Public Types inherited from vtkPointSetAlgorithm | |
Public Types inherited from vtkAlgorithm | |
Public Types inherited from vtkObject | |
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) |
Public Member Functions inherited from vtkPointSetAlgorithm | |
| 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) |
Public Member Functions inherited from vtkAlgorithm | |
| 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) |
Public Member Functions inherited from vtkObject | |
| 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) |
Public Member Functions inherited from vtkObjectBase | |
| 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 () |
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.
Reimplemented from vtkPointSetAlgorithm.
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.
1.8.1