DGtal  0.9.2
Public Types | Public Member Functions | Protected Member Functions
DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer > Class Template Reference

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

Inheritance diagram for DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >:
[legend]
Collaboration diagram for DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >:
[legend]

Public Types

typedef TSeparableMetric SeparableMetric
 
typedef TSpace Space
 
typedef TSpace::Vector Vector
 
typedef TPointPredicate PointPredicate
 
typedef SeparableMetric::Value Value
 
typedef SeparableMetric::Point Point
 
typedef DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric > Self
 
typedef VoronoiMap< TSpace, TPointPredicate, TSeparableMetric > Parent
 
typedef DefaultConstImageRange< SelfConstRange
 
typedef VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::Domain Domain
 
- Public Types inherited from DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >
typedef TSpace Space
 
typedef TPointPredicate PointPredicate
 
typedef TImageContainer::Domain Domain
 
typedef TSeparableMetric SeparableMetric
 
typedef DGtal::int64_t IntegerLong
 
typedef Space::Vector Vector
 
typedef Space::Point Point
 
typedef Space::Dimension Dimension
 
typedef Space::Size Size
 
typedef Space::Point::Coordinate Abscissa
 
typedef TImageContainer OutputImage
 
typedef Vector Value
 
typedef OutputImage::ConstRange ConstRange
 
typedef VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer > Self
 

Public Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CSpace< TSpace >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CPointPredicate< TPointPredicate >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CSeparableMetric< TSeparableMetric >))
 
 BOOST_STATIC_ASSERT ((boost::is_same< typename Space::Point, typename SeparableMetric::Point >::value))
 
 DistanceTransformation (ConstAlias< Domain > aDomain, ConstAlias< PointPredicate > predicate, ConstAlias< SeparableMetric > aMetric)
 
 ~DistanceTransformation ()
 
const Domaindomain () const
 
ConstRange constRange () const
 
Value operator() (const Point &aPoint) const
 
Vector getVoronoiVector (const Point &aPoint) const
 
const SeparableMetricmetric () const
 
void selfDisplay (std::ostream &out) const
 
- Public Member Functions inherited from DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >
 BOOST_CONCEPT_ASSERT ((concepts::CSpace< TSpace >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CPointPredicate< TPointPredicate >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CSeparableMetric< TSeparableMetric >))
 
 BOOST_STATIC_ASSERT ((boost::is_same< typename TSpace::Point, typename TPointPredicate::Point >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< TSpace, typename TImageContainer::Domain::Space >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< typename TSpace::Vector, typename TImageContainer::Value >::value))
 
 BOOST_STATIC_ASSERT ((boost::is_same< HyperRectDomain< TSpace >, typename TImageContainer::Domain >::value))
 
 VoronoiMap (ConstAlias< Domain > aDomain, ConstAlias< PointPredicate > predicate, ConstAlias< SeparableMetric > aMetric)
 
 ~VoronoiMap ()
 
Selfoperator= (const Self &aOtherVoronoiMap)
 
const Domaindomain () const
 
ConstRange constRange () const
 
Value operator() (const Point &aPoint) const
 
const SeparableMetricmetric () const
 
void selfDisplay (std::ostream &out) const
 

Protected Member Functions

 DistanceTransformation ()
 
- Protected Member Functions inherited from DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >
 VoronoiMap ()
 

Additional Inherited Members

- Protected Attributes inherited from DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >
const SeparableMetricmyMetricPtr
 
CountedPtr< OutputImagemyImagePtr
 

Detailed Description

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
class DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >

Aim: Implementation of the linear in time distance transformation for separable metrics.

Description of template class 'DistanceTransformation'

This class is a wrapper around a Voronoi map construction (see VoronoiMap). More precisely, at a point p, since the VoronoiMap at p returns a vector to the closest site, this class adapts the operator() in order to returns the distance to the closest site for the considered metric.

Please refer to VoronoiMap documentation for details on the computational cost and parameter description.

This class is a model of concepts::CConstImage.

Template Parameters
TSpacetype of Digital Space (model of concepts::CSpace).
TPointPredicatepoint predicate returning false for points from which we compute the distance (model of concepts::CPointPredicate)
TSeparableMetrica model of concepts::CSeparableMetric
TImageContainerany model of concepts::CImage to store the VoronoiMap (default: ImageContainerBySTLVector). The space of the image container and the TSpace should match. Furthermore the container value type must be TSpace::Vector.
See also
distancetransform2D.cpp
distancetransform3D.cpp
Examples:
geometry/volumes/distance/distancetransform2D.cpp, geometry/volumes/distance/distancetransform3D.cpp, geometry/volumes/distance/voronoimap2D.cpp, and tutorial-examples/volDTGranulo.cpp.

Definition at line 98 of file DistanceTransformation.h.

Member Typedef Documentation

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef DefaultConstImageRange<Self> DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::ConstRange

Definition of the image constRange.

Definition at line 133 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef VoronoiMap<TSpace,TPointPredicate, TSeparableMetric,TImageContainer>::Domain DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::Domain

Definition of the image value type.

Definition at line 138 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef VoronoiMap<TSpace,TPointPredicate,TSeparableMetric> DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::Parent

Definition at line 130 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef SeparableMetric::Point DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::Point

Definition of the image value type.

Definition at line 123 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef TPointPredicate DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::PointPredicate

Point Predicate type.

Definition at line 117 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef DistanceTransformation<TSpace,TPointPredicate,TSeparableMetric> DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::Self

Definition of the image.

Definition at line 128 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef TSeparableMetric DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::SeparableMetric

Separable Metric type.

Definition at line 108 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef TSpace DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::Space

Separable Metric type.

Definition at line 111 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef SeparableMetric::Value DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::Value

Definition of the image value type.

Definition at line 120 of file DistanceTransformation.h.

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
typedef TSpace::Vector DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::Vector

Separable Metric type.

Definition at line 114 of file DistanceTransformation.h.

Constructor & Destructor Documentation

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::DistanceTransformation ( ConstAlias< Domain aDomain,
ConstAlias< PointPredicate predicate,
ConstAlias< SeparableMetric aMetric 
)
inline

Constructor See documentation of VoronoiMap constructor.

Definition at line 144 of file DistanceTransformation.h.

146  :
147  VoronoiMap<TSpace,TPointPredicate,TSeparableMetric,TImageContainer>(aDomain,
148  predicate,
149  aMetric)
150  {}
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::~DistanceTransformation ( )
inline

Default destructor

Definition at line 155 of file DistanceTransformation.h.

155 {};
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::DistanceTransformation ( )
protected

Default Constructor.

Member Function Documentation

template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::BOOST_CONCEPT_ASSERT ( (concepts::CSpace< TSpace >)  )
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::BOOST_CONCEPT_ASSERT ( (concepts::CPointPredicate< TPointPredicate >)  )
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::BOOST_CONCEPT_ASSERT ( (concepts::CSeparableMetric< TSeparableMetric >)  )
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::BOOST_STATIC_ASSERT ( (boost::is_same< typename Space::Point, typename SeparableMetric::Point >::value)  )
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
ConstRange DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::constRange ( ) const
inline

Returns a const range on the DistanceMap values.

Returns
a const range

Definition at line 173 of file DistanceTransformation.h.

174  {
175  return ConstRange(*this);
176  }
DefaultConstImageRange< Self > ConstRange
Definition of the image constRange.
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
const Domain& DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::domain ( ) const
inline

Returns a const range on the DistanceMap values.

Returns
a const range

Definition at line 164 of file DistanceTransformation.h.

References DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::domain().

165  {
166  return Parent::domain();
167  }
const Domain & domain() const
Definition: VoronoiMap.h:213
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
Vector DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::getVoronoiVector ( const Point aPoint) const
inline

Access to a DistanceMap value (a.k.a. the norm of the associated Voronoi vector) at a point.

Parameters
aPointthe point to probe.

Definition at line 196 of file DistanceTransformation.h.

References DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::myImagePtr.

197  {
198  return this->myImagePtr->operator()(aPoint);
199  }
CountedPtr< OutputImage > myImagePtr
Voronoi map image.
Definition: VoronoiMap.h:318
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
const SeparableMetric* DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::metric ( ) const
inline
Returns
Returns the underlying metric.

Definition at line 204 of file DistanceTransformation.h.

References DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::metric().

205  {
206  return Parent::metric();
207  }
const SeparableMetric * metric() const
Definition: VoronoiMap.h:242
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
Value DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::operator() ( const Point aPoint) const
inline

Access to a DistanceMap value (a.k.a. the norm of the associated Voronoi vector) at a point.

Parameters
aPointthe point to probe.

Definition at line 184 of file DistanceTransformation.h.

References DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::myImagePtr, and DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::myMetricPtr.

185  {
186  return this->myMetricPtr->operator()(aPoint,
187  this->myImagePtr->operator()(aPoint));
188  }
const SeparableMetric * myMetricPtr
Pointer to the separable metric instance.
Definition: VoronoiMap.h:315
CountedPtr< OutputImage > myImagePtr
Voronoi map image.
Definition: VoronoiMap.h:318
template<typename TSpace, typename TPointPredicate, typename TSeparableMetric, typename TImageContainer = ImageContainerBySTLVector<HyperRectDomain<TSpace>, typename TSpace::Vector>>
void DGtal::DistanceTransformation< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::selfDisplay ( std::ostream &  out) const
inline

Self Display method.

Parameters
[out]outoutput stream

Definition at line 214 of file DistanceTransformation.h.

References DGtal::VoronoiMap< TSpace, TPointPredicate, TSeparableMetric, TImageContainer >::selfDisplay().

215  {
216  out << "[DistanceTransformation] underlying VoronoiMap={";
217  Parent::selfDisplay(out);
218  out << "}";
219  }
void selfDisplay(std::ostream &out) const

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