DGtal  1.5.beta
DGtal::L2FirstOrderLocalDistance< TImage, TSet > Class Template Reference

Aim: Class for the computation of the Euclidean distance at some point p, from the available distance values of some points lying in the 1-neighborhood of p (ie. points at a L1-distance to p equal to 1). More...

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

Public Types

typedef TImage Image
 
typedef Image::Point Point
 
typedef Image::Value Value
 
typedef TSet Set
 

Public Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CImage< TImage >))
 image More...
 
 BOOST_CONCEPT_ASSERT ((concepts::CDigitalSet< TSet >))
 set More...
 
 BOOST_STATIC_ASSERT ((boost::is_same< Point, typename TSet::Point >::value))
 
 L2FirstOrderLocalDistance (Image &aImg, TSet &aSet)
 
 L2FirstOrderLocalDistance (const L2FirstOrderLocalDistance &other)
 
L2FirstOrderLocalDistanceoperator= (const L2FirstOrderLocalDistance &other)
 
 ~L2FirstOrderLocalDistance ()
 
Value operator() (const Point &aPoint)
 
void selfDisplay (std::ostream &out) const
 

Data Fields

ImagemyImgPtr
 Aliasing pointer on the underlying image. More...
 
SetmySetPtr
 Aliasing pointer on the underlying set. More...
 

Private Types

typedef std::vector< ValueValues
 

Private Member Functions

Value compute (Values &aValueList) const
 
Value gradientNorm (const Value &aValue, const Values &aValueList) const
 

Detailed Description

template<typename TImage, typename TSet>
class DGtal::L2FirstOrderLocalDistance< TImage, TSet >

Aim: Class for the computation of the Euclidean distance at some point p, from the available distance values of some points lying in the 1-neighborhood of p (ie. points at a L1-distance to p equal to 1).

Description of template class 'L2FirstOrderLocalDistance'

The computed value is such that the upwind gradient of the distance map is one, ie. it is the minimum solution \( \Phi \) over all quadrants, verifying the following quadratic equation: \( \sum_{i = 1 \ldots d } ( \Phi - \Phi_i )^2 = 1 \) where \( \Phi_i \) is the distance value of the point preceeding or following p along the \( i \) axis.

Note
This class deals with positive or negative distance values (0 is arbitrarily considered as a positive value, ie. starting with a seed of null value, you must get positive values). However, the behavior is undefined when there are both positive and negative distance values in the neighborhood of p.

It is a model of CPointFunctor.

Template Parameters
TImagemodel of CImage used for the mapping point-distance value
TSetmodel of CDigitalSet for storing points whose distance value is known
See also
FMM

Definition at line 93 of file FMMPointFunctors.h.

Member Typedef Documentation

◆ Image

template<typename TImage , typename TSet >
typedef TImage DGtal::L2FirstOrderLocalDistance< TImage, TSet >::Image

Definition at line 102 of file FMMPointFunctors.h.

◆ Point

template<typename TImage , typename TSet >
typedef Image::Point DGtal::L2FirstOrderLocalDistance< TImage, TSet >::Point

Definition at line 103 of file FMMPointFunctors.h.

◆ Set

template<typename TImage , typename TSet >
typedef TSet DGtal::L2FirstOrderLocalDistance< TImage, TSet >::Set

Definition at line 108 of file FMMPointFunctors.h.

◆ Value

template<typename TImage , typename TSet >
typedef Image::Value DGtal::L2FirstOrderLocalDistance< TImage, TSet >::Value

Definition at line 104 of file FMMPointFunctors.h.

◆ Values

template<typename TImage , typename TSet >
typedef std::vector<Value> DGtal::L2FirstOrderLocalDistance< TImage, TSet >::Values
private

Definition at line 113 of file FMMPointFunctors.h.

Constructor & Destructor Documentation

◆ L2FirstOrderLocalDistance() [1/2]

template<typename TImage , typename TSet >
DGtal::L2FirstOrderLocalDistance< TImage, TSet >::L2FirstOrderLocalDistance ( Image aImg,
TSet &  aSet 
)

Constructor from an image and a set. NB: only pointers are stored

Parameters
aImgany distance map
aSetany digital set

◆ L2FirstOrderLocalDistance() [2/2]

template<typename TImage , typename TSet >
DGtal::L2FirstOrderLocalDistance< TImage, TSet >::L2FirstOrderLocalDistance ( const L2FirstOrderLocalDistance< TImage, TSet > &  other)

Copy constructor.

Parameters
otherthe object to clone.

◆ ~L2FirstOrderLocalDistance()

template<typename TImage , typename TSet >
DGtal::L2FirstOrderLocalDistance< TImage, TSet >::~L2FirstOrderLocalDistance ( )

Destructor. Does nothing.

Member Function Documentation

◆ BOOST_CONCEPT_ASSERT() [1/2]

template<typename TImage , typename TSet >
DGtal::L2FirstOrderLocalDistance< TImage, TSet >::BOOST_CONCEPT_ASSERT ( (concepts::CDigitalSet< TSet >)  )

set

◆ BOOST_CONCEPT_ASSERT() [2/2]

template<typename TImage , typename TSet >
DGtal::L2FirstOrderLocalDistance< TImage, TSet >::BOOST_CONCEPT_ASSERT ( (concepts::CImage< TImage >)  )

image

◆ BOOST_STATIC_ASSERT()

template<typename TImage , typename TSet >
DGtal::L2FirstOrderLocalDistance< TImage, TSet >::BOOST_STATIC_ASSERT ( (boost::is_same< Point, typename TSet::Point >::value)  )

◆ compute()

template<typename TImage , typename TSet >
Value DGtal::L2FirstOrderLocalDistance< TImage, TSet >::compute ( Values aValueList) const
private

Returns an approximation of the Euclidean distance at some point, knowing the distance of its neighbors

Parameters
aValueListthe distance of (some of) the neighbors
Returns
the computed distance.

◆ gradientNorm()

template<typename TImage , typename TSet >
Value DGtal::L2FirstOrderLocalDistance< TImage, TSet >::gradientNorm ( const Value aValue,
const Values aValueList 
) const
private

Returns the squared euclidean norm of the gradient of the distance map

Parameters
aValuethe distance value of the point where the gradient is computed
aValueListthe distance value of (some of) the neighbors
Returns
the computed gradient norm.

◆ operator()()

template<typename TImage , typename TSet >
Value DGtal::L2FirstOrderLocalDistance< TImage, TSet >::operator() ( const Point aPoint)

Euclidean distance computation at aPoint , from the available distance values of the 1-neighbors of aPoint .

Parameters
aPointthe point for which the distance is computed
Returns
the distance value at aPoint.

◆ operator=()

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

Assignment.

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

◆ selfDisplay()

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

Writes/Displays the object on an output stream.

Parameters
outthe output stream where the object is written.

Field Documentation

◆ myImgPtr

template<typename TImage , typename TSet >
Image* DGtal::L2FirstOrderLocalDistance< TImage, TSet >::myImgPtr

Aliasing pointer on the underlying image.

Definition at line 118 of file FMMPointFunctors.h.

◆ mySetPtr

template<typename TImage , typename TSet >
Set* DGtal::L2FirstOrderLocalDistance< TImage, TSet >::mySetPtr

Aliasing pointer on the underlying set.

Definition at line 120 of file FMMPointFunctors.h.


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