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

lti::gradientASM Class Reference

This class implements an alignment strategy for activeShapeModel (ASM). More...

#include <ltiGradientASM.h>

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

List of all members.

Classes

class  parameters
 the parameters for the class gradientASM More...

Public Member Functions

 gradientASM ()
 gradientASM (const gradientASM &other)
virtual ~gradientASM ()
virtual const char * getTypeName () const
gradientASMcopy (const gradientASM &other)
gradientASMoperator= (const gradientASM &other)
virtual functorclone () const
const parametersgetParameters () const
pointDistributionModel::shapeapply (pointDistributionModel::shape &srcdest, const channel &gradientChannel) const

Protected Member Functions

pointDistributionModel::shapeadjustShape (pointDistributionModel::shape &srcdest, const channel &gradientChannel, fvector &pointReliability) const
bool createWeightingKernel (kernel1D< float > &theKernel) const
void getIntensityArray (const tpoint< float > &start, const tpoint< float > &normal, const channel &chnl, array< float > &values) const
tpoint< int > roundPoint (const tpoint< float > &floatPoint) const

Detailed Description

This class implements an alignment strategy for activeShapeModel (ASM).

See: Sonka's "Image Processing, Analysis, and Machine Vision", p380ff.

For this purpose, strong gradients perpendicular to the border of a given shape are searched, starting from each of the shapes's landmark points. The best candidate is selected by gradient strength AND distance to the border (see parameters::weightingKernel). The resulting shape's parameters are then adjusted to fit the underlying pointDistributionModel (PDM) in two steps:

  1. geometric tranformation (coarse fit)
  2. deformation (fine fit)

The procedure is repeated, until a given number of iterations is reached.


Constructor & Destructor Documentation

lti::gradientASM::gradientASM (  ) 

default constructor

lti::gradientASM::gradientASM ( const gradientASM other  ) 

copy constructor

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

destructor


Member Function Documentation

pointDistributionModel::shape& lti::gradientASM::adjustShape ( pointDistributionModel::shape srcdest,
const channel gradientChannel,
fvector pointReliability 
) const [protected]

align shape on the given gradient channel (no iterations!)

Returns:
a reference to the srcdest.
pointDistributionModel::shape& lti::gradientASM::apply ( pointDistributionModel::shape srcdest,
const channel gradientChannel 
) const

align shape on the given gradient channel.

iteratively, scan for closest border: iteration process: the channel's values along a control point's normal are saved and afterwards weighted with the weighting function specified in the parameters class. the control point is then moved to the point with the highest value. the shape is then trimmed to a valid shape.

Parameters:
srcdest shape with the source data. The result will be left here too.
gradientChannel gradient channel. the pdmShape is aligned along higher values in this channel.
Returns:
a reference to the srcdest.
virtual functor* lti::gradientASM::clone (  )  const [virtual]

returns a pointer to a clone of this functor.

Reimplemented from lti::activeShapeModel.

Reimplemented in lti::skinASM.

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

copy data of "other" functor.

Parameters:
other the functor to be copied
Returns:
a reference to this functor object

Reimplemented from lti::activeShapeModel.

Reimplemented in lti::skinASM.

bool lti::gradientASM::createWeightingKernel ( kernel1D< float > &  theKernel  )  const [protected]

create weighting kernel according to parameters return false, if no kernel was built

void lti::gradientASM::getIntensityArray ( const tpoint< float > &  start,
const tpoint< float > &  normal,
const channel chnl,
array< float > &  values 
) const [protected]

get intensity array from a channel for a specific starting point, normal and given borders

const parameters& lti::gradientASM::getParameters (  )  const

returns used parameters

Reimplemented from lti::activeShapeModel.

Reimplemented in lti::skinASM.

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

returns the name of this type ("gradientASM")

Reimplemented from lti::activeShapeModel.

Reimplemented in lti::skinASM.

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

alias for copy member

Parameters:
other the functor to be copied
Returns:
a reference to this functor object

Reimplemented from lti::activeShapeModel.

Reimplemented in lti::skinASM.

tpoint<int> lti::gradientASM::roundPoint ( const tpoint< float > &  floatPoint  )  const [protected]

round tpoint<float> and convert to tpoint<int>


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

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