DGtal  1.5.beta
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor > Class Template Reference

Aim: Fast Marching Method (FMM) for nd distance transforms. More...

#include <DGtal/geometry/volumes/distance/FMM.h>

Public Types

typedef TImage Image
 
typedef TSet AcceptedPointSet
 
typedef TPointPredicate PointPredicate
 
typedef Image::Point Point
 
typedef Point::Dimension Dimension
 
typedef TPointFunctor PointFunctor
 
typedef PointFunctor::Value Value
 

Public Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CImage< TImage >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CDigitalSet< TSet >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CPointPredicate< TPointPredicate >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CPointFunctor< TPointFunctor >))
 
 BOOST_STATIC_ASSERT ((boost::is_same< Point, typename AcceptedPointSet::Point >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< Point, typename PointPredicate::Point >::value))
 
 FMM (Image &aImg, AcceptedPointSet &aSet, ConstAlias< PointPredicate > aPointPredicate)
 
 FMM (Image &aImg, AcceptedPointSet &aSet, ConstAlias< PointPredicate > aPointPredicate, const Area &aAreaThreshold, const Value &aValueThreshold)
 
 FMM (Image &aImg, AcceptedPointSet &aSet, ConstAlias< PointPredicate > aPointPredicate, PointFunctor &aPointFunctor)
 
 FMM (Image &aImg, AcceptedPointSet &aSet, ConstAlias< PointPredicate > aPointPredicate, const Area &aAreaThreshold, const Value &aValueThreshold, PointFunctor &aPointFunctor)
 
 ~FMM ()
 
void compute ()
 
bool computeOneStep (Point &aPoint, Value &aValue)
 
Value min () const
 
Value max () const
 
Value getMin () const
 
Value getMax () const
 
void selfDisplay (std::ostream &out) const
 
bool isValid () const
 

Static Public Member Functions

template<typename TIteratorOnPoints >
static void initFromPointsRange (const TIteratorOnPoints &itb, const TIteratorOnPoints &ite, Image &aImg, AcceptedPointSet &aSet, const Value &aValue)
 
template<typename KSpace , typename TIteratorOnBels >
static void initFromBelsRange (const KSpace &aK, const TIteratorOnBels &itb, const TIteratorOnBels &ite, Image &aImg, AcceptedPointSet &aSet, const Value &aValue, bool aFlagIsPositive=true)
 
template<typename KSpace , typename TIteratorOnBels , typename TImplicitFunction >
static void initFromBelsRange (const KSpace &aK, const TIteratorOnBels &itb, const TIteratorOnBels &ite, const TImplicitFunction &aF, Image &aImg, AcceptedPointSet &aSet, bool aFlagIsPositive=true)
 
template<typename TIteratorOnPairs >
static void initFromIncidentPointsRange (const TIteratorOnPairs &itb, const TIteratorOnPairs &ite, Image &aImg, AcceptedPointSet &aSet, const Value &aValue, bool aFlagIsPositive=true)
 

Static Public Attributes

static const Dimension dimension
 

Private Types

typedef std::pair< Point, ValuePointValue
 
typedef std::set< PointValue, detail::PointValueCompare< PointValue > > CandidatePointSet
 
typedef DGtal::uint64_t Area
 

Private Member Functions

 FMM (const FMM &other)
 
FMMoperator= (const FMM &other)
 
void init ()
 
bool addNewAcceptedPoint (Point &aPoint, Value &aValue)
 
void update (const Point &aPoint)
 
bool addNewCandidate (const Point &aPoint)
 

Private Attributes

ImagemyImage
 
AcceptedPointSetmyAcceptedPoints
 
CandidatePointSet myCandidatePoints
 
PointFunctormyPointFunctorPtr
 
const bool myFlagIsOwning
 
const PointPredicatemyPointPredicate
 
Area myAreaThreshold
 
Value myValueThreshold
 
Value myMinValue
 
Value myMaxValue
 

Detailed Description

template<typename TImage, typename TSet, typename TPointPredicate, typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
class DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >

Aim: Fast Marching Method (FMM) for nd distance transforms.

Description of template class 'FMM'

In this approach, a signed distance function is computed at each digital point by marching out from an initial set of points, for which the values of the signed distance are known. This set is an initialization of the so-called accepted point set. Each digital point adjacent to one of the accepted points is put into the so-called candidate point set. A tentative value is computed for its signed distance, using only the values of the accepted points lying in its neighborhood. This task is delegated to an instance of a point functor, which is defined as L2FirstOrderLocalDistance by default. However, you are free to use L2SecondOrderLocalDistance, which provides more accurate distance values, L1LocalDistance and LInfLocalDistance for other norms.

Then the point of smallest tentative value is added to the set of accepted points. The tentative values of the candidates adjacent to the newly added point are updated using the distance value of the newly added point. The search of the point of smallest tentative value is accelerated using a STL set of pairs (point, tentative value).

Template Parameters
TImageany model of CImage
TSetany model of CDigitalSet
TPointPredicateany model of concepts::CPointPredicate, used to bound the computation within a domain
TPointFunctorany model of CPointFunctor, used to compute the new distance value

You can define the FMM type as follows:

typedef ImageContainerBySTLMap<Domain,double> DistanceImage;
typedef DigitalSetFromMap<DistanceImage> AcceptedPointSet;
typedef Domain::Predicate DomainPredicate;
typedef FMM<DistanceImage, AcceptedPointSet, DomainPredicate > FMM;
FMM(Image &aImg, AcceptedPointSet &aSet, ConstAlias< PointPredicate > aPointPredicate)
TSet AcceptedPointSet
Definition: FMM.h:164

You can construct and initialize the external data structures as follows:

DistanceImage imageDistance( domain, 0.0 );
AcceptedPointSet initialPointSet( imageDistance );
FMM::initFromBelsRange( ks, frontier.begin(), frontier.end(),
imageDistance, initialPointSet, 0.5 );
static void initFromBelsRange(const KSpace &aK, const TIteratorOnBels &itb, const TIteratorOnBels &ite, Image &aImg, AcceptedPointSet &aSet, const Value &aValue, bool aFlagIsPositive=true)
Domain domain

Then, the algorithm is ran as follows:

FMM fmm( imageDistance, initialPointSet, domain.predicate(),
domain.size(), maximalDistance );
fmm.compute();
trace.info() << fmm << std::endl;
std::ostream & info()
Trace trace
Definition: Common.h:153
See also
exampleFMM2D.cpp
exampleFMM3D.cpp
testFMM.cpp

Definition at line 150 of file FMM.h.

Member Typedef Documentation

◆ AcceptedPointSet

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef TSet DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::AcceptedPointSet

Definition at line 164 of file FMM.h.

◆ Area

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef DGtal::uint64_t DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::Area
private

Definition at line 187 of file FMM.h.

◆ CandidatePointSet

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef std::set<PointValue, detail::PointValueCompare<PointValue> > DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::CandidatePointSet
private

Definition at line 186 of file FMM.h.

◆ Dimension

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef Point::Dimension DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::Dimension

Definition at line 173 of file FMM.h.

◆ Image

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef TImage DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::Image

Definition at line 163 of file FMM.h.

◆ Point

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef Image::Point DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::Point

Definition at line 168 of file FMM.h.

◆ PointFunctor

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef TPointFunctor DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::PointFunctor

Definition at line 177 of file FMM.h.

◆ PointPredicate

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef TPointPredicate DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::PointPredicate

Definition at line 165 of file FMM.h.

◆ PointValue

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef std::pair<Point, Value> DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::PointValue
private

Definition at line 184 of file FMM.h.

◆ Value

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
typedef PointFunctor::Value DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::Value

Definition at line 178 of file FMM.h.

Constructor & Destructor Documentation

◆ FMM() [1/5]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::FMM ( Image aImg,
AcceptedPointSet aSet,
ConstAlias< PointPredicate aPointPredicate 
)

Constructor.

See also
init

◆ FMM() [2/5]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::FMM ( Image aImg,
AcceptedPointSet aSet,
ConstAlias< PointPredicate aPointPredicate,
const Area aAreaThreshold,
const Value aValueThreshold 
)

Constructor.

See also
init

◆ FMM() [3/5]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::FMM ( Image aImg,
AcceptedPointSet aSet,
ConstAlias< PointPredicate aPointPredicate,
PointFunctor aPointFunctor 
)

Constructor.

See also
init

◆ FMM() [4/5]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::FMM ( Image aImg,
AcceptedPointSet aSet,
ConstAlias< PointPredicate aPointPredicate,
const Area aAreaThreshold,
const Value aValueThreshold,
PointFunctor aPointFunctor 
)

Constructor.

See also
init

◆ ~FMM()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::~FMM ( )

Destructor.

◆ FMM() [5/5]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::FMM ( const FMM< TImage, TSet, TPointPredicate, TPointFunctor > &  other)
private

Copy constructor.

Parameters
otherthe object to clone. Forbidden by default.

Member Function Documentation

◆ addNewAcceptedPoint()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
bool DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::addNewAcceptedPoint ( Point aPoint,
Value aValue 
)
private

Inserts the candidate of min distance into the set of accepted points and updates the distance values of the candidate points.

Parameters
aPointinserted point (if true)
aValuedistance value of the inserted point (if true)
Returns
'true' if the point of min distance is accepted 'false' otherwise.

◆ addNewCandidate()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
bool DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::addNewCandidate ( const Point aPoint)
private

Tests a new point as a candidate. If it is not yet accepted and if the point predicate returns 'true', computes its distance and inserts it into the set of candidate points.

Parameters
aPointany point
Returns
'true' if inserted, 'false' otherwise.

◆ BOOST_CONCEPT_ASSERT() [1/4]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CDigitalSet< TSet >)  )

◆ BOOST_CONCEPT_ASSERT() [2/4]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CImage< TImage >)  )

◆ BOOST_CONCEPT_ASSERT() [3/4]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CPointFunctor< TPointFunctor >)  )

◆ BOOST_CONCEPT_ASSERT() [4/4]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::BOOST_CONCEPT_ASSERT ( (concepts::CPointPredicate< TPointPredicate >)  )

◆ BOOST_STATIC_ASSERT() [1/2]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::BOOST_STATIC_ASSERT ( (boost::is_same< Point, typename AcceptedPointSet::Point >::value)  )

◆ BOOST_STATIC_ASSERT() [2/2]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::BOOST_STATIC_ASSERT ( (boost::is_same< Point, typename PointPredicate::Point >::value)  )

◆ compute()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
void DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::compute ( )

Computation of the signed distance function by marching out from the initial set of accepted points. While it is possible, the candidate of min distance is inserted into the set of accepted points.

See also
computeOneStep

Referenced by accuracyTest(), example(), main(), testComparison(), testDisplayDT2d(), testDisplayDT3d(), and testDisplayDTFromCircle().

◆ computeOneStep()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
bool DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::computeOneStep ( Point aPoint,
Value aValue 
)

Inserts the candidate of min distance into the set of accepted points if it is possible and then updates the distance values associated to the candidate points.

Parameters
aPointinserted point (if inserted)
aValueits distance value (if inserted)
Returns
'true' if the point of min distance is accepted 'false' otherwise.
See also
addNewAcceptedPoint

◆ getMax()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Value DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::getMax ( ) const

Computes the maximal distance value in the set of accepted points.

NB: in O(n log n) where n is the size of the set

Returns
maximal distance value.

Referenced by testDisplayDTFromCircle().

◆ getMin()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Value DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::getMin ( ) const

Computes the minimal distance value in the set of accepted points.

NB: in O(n log n) where n is the size of the set

Returns
minimal distance value.

Referenced by testDisplayDTFromCircle().

◆ init()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
void DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::init ( )
private

Initialize the set of candidate points

◆ initFromBelsRange() [1/2]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
template<typename KSpace , typename TIteratorOnBels , typename TImplicitFunction >
static void DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::initFromBelsRange ( const KSpace aK,
const TIteratorOnBels &  itb,
const TIteratorOnBels &  ite,
const TImplicitFunction &  aF,
Image aImg,
AcceptedPointSet aSet,
bool  aFlagIsPositive = true 
)
static

Initialize aImg and aSet from the points incident to the signed cells of the range [itb , ite ). If aFlagIsPositive is 'true' (default), assign to the inner points a negative distance interpolated from the distance values of the neighbors given by the function aF and assign to the outer points a positive distance interpolated from the distance values of the neighbors given by the function aF. Swap the signs if aFlagIsPositive is 'false'.

Parameters
aKa Khalimsky space in which the signed cells live.
itbbegin iterator (on signed cells)
iteend iterator (on signed cells)
aFany implicit function
aImgthe distance image
aSetthe set of points for which the distance has been assigned
aFlagIsPositiveThe flag controlling the aValue sign assigned to inner points.

◆ initFromBelsRange() [2/2]

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
template<typename KSpace , typename TIteratorOnBels >
static void DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::initFromBelsRange ( const KSpace aK,
const TIteratorOnBels &  itb,
const TIteratorOnBels &  ite,
Image aImg,
AcceptedPointSet aSet,
const Value aValue,
bool  aFlagIsPositive = true 
)
static

Initialize aImg and aSet from the points incident to the signed cells of the range [itb , ite ) Assign to the inner points a distance equal to - aValue if aFlagIsPositive is 'true' (default) but aValue otherwise, and conversely for the outer points.

Parameters
aKa Khalimsky space in which the signed cells live.
itbbegin iterator (on signed cells)
iteend iterator (on signed cells)
aImgthe distance image
aSetthe set of points for which the distance has been assigned
aValuedistance default value
aFlagIsPositiveThe flag controlling the aValue sign assigned to inner points.

◆ initFromIncidentPointsRange()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
template<typename TIteratorOnPairs >
static void DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::initFromIncidentPointsRange ( const TIteratorOnPairs &  itb,
const TIteratorOnPairs &  ite,
Image aImg,
AcceptedPointSet aSet,
const Value aValue,
bool  aFlagIsPositive = true 
)
static

Initialize aImg and aSet from the inner and outer points of the range [itb , ite ) of pairs of points.
Assign to the inner points a distance equal to - aValue if aFlagIsPositive is 'true' (default) but aValue otherwise, and conversely for the outer points.

Parameters
itbbegin iterator (on points)
iteend iterator (on points)
aImgthe distance image
aSetthe set of points for which the distance has been assigned
aValuedistance default value
aFlagIsPositiveThe flag controlling the aValue sign assigned to inner points.

◆ initFromPointsRange()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
template<typename TIteratorOnPoints >
static void DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::initFromPointsRange ( const TIteratorOnPoints &  itb,
const TIteratorOnPoints &  ite,
Image aImg,
AcceptedPointSet aSet,
const Value aValue 
)
static

Initialize aImg and aSet from the points of the range [itb , ite ) Assign a distance equal to aValue

Parameters
itbbegin iterator (on points)
iteend iterator (on points)
aImgthe distance image
aSetthe set of points for which the distance has been assigned
aValuedistance default value

◆ isValid()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
bool DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::isValid ( ) const

Checks the validity/consistency of the object.

Returns
'true' if the object is valid, 'false' otherwise.

Referenced by testDisplayDT2d(), testDisplayDT3d(), and testDisplayDTFromCircle().

◆ max()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Value DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::max ( ) const

Maximal distance value in the set of accepted points.

Returns
maximal distance value

Referenced by accuracyTest(), and example().

◆ min()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Value DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::min ( ) const

Minimal distance value in the set of accepted points.

Returns
minimal distance value.

Referenced by accuracyTest().

◆ operator=()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
FMM& DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::operator= ( const FMM< TImage, TSet, TPointPredicate, TPointFunctor > &  other)
private

Assignment.

Parameters
otherthe object to copy.
Returns
a reference on 'this'. Forbidden by default.

◆ selfDisplay()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
void DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::selfDisplay ( std::ostream &  out) const

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.

◆ update()

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
void DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::update ( const Point aPoint)
private

Updates the distance values of the neighbors of aPoint belonging to the set of accepted points

Parameters
aPointany point

Field Documentation

◆ dimension

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
const Dimension DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::dimension
static

Definition at line 174 of file FMM.h.

◆ myAcceptedPoints

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
AcceptedPointSet& DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myAcceptedPoints
private

Reference on the set of accepted points

Definition at line 200 of file FMM.h.

◆ myAreaThreshold

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Area DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myAreaThreshold
private

Area threshold (in number of accepted points) above which the propagation stops

Definition at line 232 of file FMM.h.

◆ myCandidatePoints

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
CandidatePointSet DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myCandidatePoints
private

Set of candidate points

Definition at line 205 of file FMM.h.

◆ myFlagIsOwning

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
const bool DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myFlagIsOwning
private

'true' if myPointFunctorPtr is an owning pointer (default case), 'false' if it is an aliasing pointer on a point functor given at construction

Definition at line 219 of file FMM.h.

◆ myImage

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Image& DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myImage
private

Reference on the image

Definition at line 195 of file FMM.h.

◆ myMaxValue

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Value DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myMaxValue
private

Max value

Definition at line 247 of file FMM.h.

◆ myMinValue

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Value DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myMinValue
private

Min value

Definition at line 242 of file FMM.h.

◆ myPointFunctorPtr

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
PointFunctor* DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myPointFunctorPtr
private

Pointer on the point functor used to deduce the distance of a new point from the distance of its neighbors

Definition at line 212 of file FMM.h.

◆ myPointPredicate

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
const PointPredicate& DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myPointPredicate
private

Constant reference on a point predicate that returns 'true' inside the domain where the distance transform is performed

Definition at line 226 of file FMM.h.

◆ myValueThreshold

template<typename TImage , typename TSet , typename TPointPredicate , typename TPointFunctor = L2FirstOrderLocalDistance<TImage,TSet>>
Value DGtal::FMM< TImage, TSet, TPointPredicate, TPointFunctor >::myValueThreshold
private

Value threshold above which the propagation stops

Definition at line 237 of file FMM.h.


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