|
latest version v1.9 - last update 24 Nov 2005 |
|
#include <ltiActiveShapeModel.h>
Inheritance diagram for lti::activeShapeModel:


Public Member Functions | |
| activeShapeModel () | |
| activeShapeModel (const activeShapeModel &other) | |
| virtual | ~activeShapeModel () |
| virtual const char * | getTypeName () const |
| activeShapeModel & | copy (const activeShapeModel &other) |
| activeShapeModel & | operator= (const activeShapeModel &other) |
| virtual functor * | clone () const |
| const parameters & | getParameters () const |
Transformation | |
Methods for transforming a shape from shape space to eigenspace and vice versa.
Eigenspace (w) -> shape space (x): x = eigenVectorMatrix * weightsVector + meanShape | |
| void | convertShapeToWeightsVector (const pointDistributionModel::shape &src, vector< double > &dest) const |
| void | convertShapeToWeightsVector (const pointDistributionModel::shape &src, vector< double > &dest, const fvector &pointReliability) const |
| void | convertWeightsVectorToShape (const vector< double > &src, pointDistributionModel::shape &dest) const |
Comparison | |
Methods for comparing and aligning two shapes. | |
| geometricTransform::parameters | alignShape (pointDistributionModel::shape &shape, const pointDistributionModel::shape &referenceShape) const |
| geometricTransform::parameters | alignShape (pointDistributionModel::shape &shape, const pointDistributionModel::shape &referenceShape, const fvector &pointReliability) const |
| float | calculateShapeDifference (const pointDistributionModel::shape &firstShape, const pointDistributionModel::shape &secondShape) const |
| float | calculateShapeDifference (const pointDistributionModel::shape &firstShape, const pointDistributionModel::shape &secondShape, const fvector &pointReliability) const |
Properties | |
Methods for computing properties of one shape. | |
| tpoint< float > | calculateShapeCenter (const pointDistributionModel::shape &shape) const |
| tpoint< float > | calculateShapeCenter (const pointDistributionModel::shape &shape, const fvector &pointReliability) const |
| float | calculateShapeDistance (const pointDistributionModel::shape &shape, const tpoint< float > &thePoint=tpoint< float >(0.0f, 0.0f)) const |
| float | calculateShapeDistance (const pointDistributionModel::shape &shape, const fvector &pointReliability, const tpoint< float > &thePoint=tpoint< float >(0.0f, 0.0f)) const |
| double | calculateShapeOrientation (const pointDistributionModel::shape &shape, const pointDistributionModel::shape &referenceShape, const tpoint< float > &theCenter=tpoint< float >(0.0f, 0.0f)) const |
| double | calculateShapeOrientation (const pointDistributionModel::shape &shape, const pointDistributionModel::shape &referenceShape, const fvector &pointReliability, const tpoint< float > &theCenter=tpoint< float >(0.0, 0.0)) const |
Protected Member Functions | |
| float | calculateRelativeShapeScale (const pointDistributionModel::shape &shape, const pointDistributionModel::shape &referenceShape, const fvector &pointReliability, const tpoint< float > &shapeCenter=tpoint< float >(0.0, 0.0), const tpoint< float > &referenceShapeCenter=tpoint< float >(0.0, 0.0)) const |
| void | trimShape (pointDistributionModel::shape &srcdest) const |
| void | trimShape (pointDistributionModel::shape &srcdest, const fvector &pointReliability) const |
| void | trimWeightsVector (vector< double > &srcdest) const |
| double | calculateAngle (const tpoint< float > &thePoint) const |
| vector< double > | buildVector (const pointDistributionModel::shape &src) const |
| pointDistributionModel::shape | buildShape (const vector< double > &src) const |
| void | createListOfNormals (const pointDistributionModel::shape &theShape, tpointList< float > &listOfNormals) const |
Classes | |
| class | parameters |
| the parameters for the class activeShapeModel More... | |
ASMs are deformable 2D-templates, that can align themselves to image features according to defined search strategies (see derived classes). The deformation is regularized (i.e. constrained) by an underlying PDM (pointDistributionModel).
This class provides the methods for aligning PDM shapes (pointDistributionModel::shape) and to correct invalid shapes to satisfy the restrictions of a given PDM. Furthermore, methods to obtain information about the position of a shape are provided. Shapes with weighted points (point reliabilities) are also supported.
|
|
default constructor
|
|
|
copy constructor
|
|
|
destructor
|
|
||||||||||||||||
|
align a given weighted shape to another.
|
|
||||||||||||
|
align a given shape to another. note that the return geometricTransform::parameters describe the transformation from the referenceShape to the unaligned shape! this is done to align a given shape to a normalized shape and be able to easily project this normalized shape (e.g. meanShape) on the original shape.
|
|
|
convert a vector [x1, y1, x2, y2, . ..] into a shape [(x1,y1),...] |
|
|
convert the shape [(x1,y1),. ..] to a vector [x1, y1, x2, y2, ...] |
|
|
calculate angle between a point and the x-axis
|
|
||||||||||||||||||||||||
|
calculate reliability-weighted scaling factor
|
|
||||||||||||
|
calculate the center of a given shape. all points of the shape are multiplied with their reliability factor, then summed, and the results divided by the sum of reliabilities. |
|
|
calculate the center of a given shape. all points of the shape are summed and the results divided by the number of points.
|
|
||||||||||||||||
|
calculate difference of two weighted shapes
|
|
||||||||||||
|
calculate mean difference of two shapes, i.e. the sum of squared distances of all corresponding points divided by the number of points |
|
||||||||||||||||
|
calculate the mean distance of a given point to the reliability-weighted points of a shape
|
|
||||||||||||
|
calculate the mean distance of a given point to the points of a shape
|
|
||||||||||||||||||||
|
calculate the relative orientation difference of two shapes with regard to a given rotation center and given point reliabilities
|
|
||||||||||||||||
|
calculate the relative orientation difference of two shapes, with regard to a given rotation center
|
|
|
returns a pointer to a clone of this functor.
Implements lti::functor. Reimplemented in lti::gradientASM, and lti::skinASM. |
|
||||||||||||||||
|
convert a reliability-weighted shape to a weights vector, i.e. project a shape into the pdm eigenspace Formula: w = (eigenVectorMatrix)^T * ((shape - meanShape) * reliabilities) Note: the shape is assumed to be aligned to position, size and rotation of meanShape!
|
|
||||||||||||
|
convert a shape to a weights vector, i.e. project a shape into the pdm eigenspace Formula: w = (eigenVectorMatrix)^T * (shape - meanShape) Note: the shape is assumed to be aligned to position, size and rotation of meanShape!
|
|
||||||||||||
|
convert a weights vector into a shape (i.e. shape space) Formula: x = eigenVectorMatrix * weightsVector + meanShape
|
|
|
copy data of "other" functor.
|
|
||||||||||||
|
create normals for each point
|
|
|
returns used parameters
Reimplemented from lti::functor. Reimplemented in lti::gradientASM, and lti::skinASM. |
|
|
returns the name of this type ("activeShapeModel")
Reimplemented from lti::functor. Reimplemented in lti::gradientASM, and lti::skinASM. |
|
|
alias for copy member
|
|
||||||||||||
|
convert reliability-weighted shape to weights vector, correct if invalid and convert back to shape space.
|
|
|
convert shape to weights vector, correct if invalid and convert back to shape space.
|
|
|
Correct weights vector according to varianceCoefficient. all vector entries that are not in between -c*v and c*v, where c is the given varianceCoefficient and v is the variance of the corresponding dimension (eigenvector), are set to 0.0
|