LTI-Lib latest version v1.9 - last update 10 Apr 2010

lti::pointDistributionModel Class Reference

This class is the data structure for a Point Distribution Model (PDM). More...

#include <ltiPointDistributionModel.h>

Inheritance diagram for lti::pointDistributionModel:
Inheritance graph
[legend]
Collaboration diagram for lti::pointDistributionModel:
Collaboration graph
[legend]

List of all members.

Public Types

typedef tpointList< float > shape

Public Member Functions

 pointDistributionModel ()
 pointDistributionModel (const pointDistributionModel &other)
virtual ~pointDistributionModel ()
pointDistributionModelcopy (const pointDistributionModel &other)
pointDistributionModeloperator= (const pointDistributionModel &other)
const char * getTypeName () const
virtual bool write (ioHandler &handler, const bool complete=true) const
virtual bool read (ioHandler &handler, const bool complete=true)

Public Attributes

shape meanShape
matrix< double > eigenVectorMatrix
vector< double > varianceVector

Detailed Description

This class is the data structure for a Point Distribution Model (PDM).

A PDM allows to represent a shape and its possible deformations, by a mean shape and the eigenvectors and eigenvalues of the shape set. It is estimated by the pdmGenerator and can be used to regularize the deformations of an activeShapeModel (ASM).

For a description of PDMs see: Sonka, "Image Processing, Analysis, and Machine Vision", p380ff.

Additional Remark:

In ASMs a shape x is described as the sum of mean shape and the weighted eigenvectors. Note that in common a subset of all eigenvectors is chosen (i.e. the eigenvectors with the first n largest eigenvalues) for data compression reasons.

x = xMean + eigenVectors*w


Member Typedef Documentation

Typedef for a single PDM shape.

A shape is an ordered list of landmark points of a 2D object. Generally this will be created by sampling a fixed number of N points along the boundary.


Constructor & Destructor Documentation

lti::pointDistributionModel::pointDistributionModel (  ) 

default constructor

lti::pointDistributionModel::pointDistributionModel ( const pointDistributionModel other  ) 

copy constructor

Parameters:
other the object to be copied
virtual lti::pointDistributionModel::~pointDistributionModel (  )  [virtual]

destructor


Member Function Documentation

pointDistributionModel& lti::pointDistributionModel::copy ( const pointDistributionModel other  ) 

copy data of "other" pointDistributionModel.

Please note that the status string will _NOT_ be copied!

Reimplemented from lti::ioObject.

const char* lti::pointDistributionModel::getTypeName (  )  const [virtual]

returns the name of this type ("pointDistributionModel")

Reimplemented from lti::ioObject.

pointDistributionModel& lti::pointDistributionModel::operator= ( const pointDistributionModel other  ) 

assigment operator (alias for copy(other)).

Parameters:
other the pointDistributionModel to be copied
Returns:
a reference to the actual pointDistributionModel

Reimplemented from lti::ioObject.

virtual bool lti::pointDistributionModel::read ( ioHandler handler,
const bool  complete = true 
) [virtual]

read the pointDistributionModel from the given ioHandler

Parameters:
handler the ioHandler to be used
complete if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written.
Returns:
true if write was successful

Reimplemented from lti::ioObject.

virtual bool lti::pointDistributionModel::write ( ioHandler handler,
const bool  complete = true 
) const [virtual]

write the pointDistributionModel in the given ioHandler

Parameters:
handler the ioHandler to be used
complete if true (the default) the enclosing begin/end will be also written, otherwise only the data block will be written.
Returns:
true if write was successful

Reimplemented from lti::ioObject.


Member Data Documentation

The matrix of all eigenvectors computed over a set of shapes.

Eigenvectors are sorted in descending order of magnitude of their corresponding eigenvalues.

The mean (average) shape of the model.

The eigenvalues, that belong to the eigenvectors, stored in a vector.

The eigenvalue is the variance of the set of shapes along the direction of the eigenvector, that it belongs to.


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

Generated on Sat Apr 10 15:27:40 2010 for LTI-Lib by Doxygen 1.6.1