latest version v1.9 - last update 10 Apr 2010 |
This is an alignment strategy for activeShapeModels (ASM), that works on a gradient channel and a skin probability channel, to trace skin colored objects. More...
#include <ltiSkinASM.h>
Classes | |
class | parameters |
the parameters for the class skinASM More... | |
Public Member Functions | |
skinASM () | |
skinASM (const skinASM &other) | |
virtual | ~skinASM () |
virtual const char * | getTypeName () const |
skinASM & | copy (const skinASM &other) |
skinASM & | operator= (const skinASM &other) |
virtual functor * | clone () const |
const parameters & | getParameters () const |
pointDistributionModel::shape & | apply (pointDistributionModel::shape &srcdest, const channel &gradientChannel, const channel &skinProbChannel) const |
Protected Member Functions | |
pointDistributionModel::shape & | adjustShape (pointDistributionModel::shape &srcdest, const channel &gradientChannel, const channel &skinProbChannel, fvector &pointReliability) const |
This is an alignment strategy for activeShapeModels (ASM), that works on a gradient channel and a skin probability channel, to trace skin colored objects.
In addition to the feature selection in the class gradientASM, feature points have to be skin colored in the inside region and non-skin colored in the outside region. Points are valid, when they only contain skin points on the inside of the shape (along the normal, within a distance <= 'parameterssearchExtent'). If no such points are found, search is continued further inside the shape (see parameters::shrinkExtent). When too many points are completely surrounded by skin, search for a skin border is continued further outside the shape (see parameters::enlargeExtent).
Important note: Due to the inside/outside nature, the points of the shape must be given in clockwise order!
lti::skinASM::skinASM | ( | ) |
default constructor
lti::skinASM::skinASM | ( | const skinASM & | other | ) |
copy constructor
other | the object to be copied |
virtual lti::skinASM::~skinASM | ( | ) | [virtual] |
destructor
pointDistributionModel::shape& lti::skinASM::adjustShape | ( | pointDistributionModel::shape & | srcdest, | |
const channel & | gradientChannel, | |||
const channel & | skinProbChannel, | |||
fvector & | pointReliability | |||
) | const [protected] |
iteratively align shape on the given gradient and skin probality channels.
srcdest
. pointDistributionModel::shape& lti::skinASM::apply | ( | pointDistributionModel::shape & | srcdest, | |
const channel & | gradientChannel, | |||
const channel & | skinProbChannel | |||
) | const |
align shape on the given gradient channel.
iteratively, scan for best border as described above
virtual functor* lti::skinASM::clone | ( | ) | const [virtual] |
returns a pointer to a clone of this functor.
Reimplemented from lti::gradientASM.
copy data of "other" functor.
other | the functor to be copied |
Reimplemented from lti::gradientASM.
const parameters& lti::skinASM::getParameters | ( | ) | const |
returns used parameters
Reimplemented from lti::gradientASM.
virtual const char* lti::skinASM::getTypeName | ( | ) | const [virtual] |
returns the name of this type ("skinASM")
Reimplemented from lti::gradientASM.
alias for copy member
other | the functor to be copied |
Reimplemented from lti::gradientASM.