DGtal  1.5.beta
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator > Class Template Reference

Aim: A model of CLocalCurveGeometricEstimator that assigns to each element of a (sub)range a quantity estimated from the most centered maximal segment passing through this element. More...

#include <DGtal/geometry/curves/estimation/MostCenteredMaximalSegmentEstimator.h>

Public Types

typedef SegmentComputer::ConstIterator ConstIterator
 
typedef SCEstimator::Quantity Quantity
 
typedef SaturatedSegmentation< SegmentComputerSegmentation
 
typedef Segmentation::SegmentComputerIterator SegmentIterator
 

Public Member Functions

 MostCenteredMaximalSegmentEstimator ()=delete
 
 MostCenteredMaximalSegmentEstimator (const SegmentComputer &aSegmentComputer, const SCEstimator &aSCEstimator)
 
 ~MostCenteredMaximalSegmentEstimator ()
 
void init (const ConstIterator &itb, const ConstIterator &ite)
 
Quantity eval (const ConstIterator &it, const double h=1.)
 
template<typename OutputIterator >
OutputIterator eval (const ConstIterator &itb, const ConstIterator &ite, OutputIterator result, const double h=1.)
 
bool isValid () const
 

Private Member Functions

 BOOST_CONCEPT_ASSERT ((concepts::CForwardSegmentComputer< SegmentComputer >))
 
 BOOST_CONCEPT_ASSERT ((concepts::CSegmentComputerEstimator< SCEstimator >))
 
 BOOST_STATIC_ASSERT ((boost::is_same< SegmentComputer, typename SCEstimator::SegmentComputer >::value))
 
 BOOST_CONCEPT_ASSERT ((concepts::CCurveLocalGeometricEstimator< SCEstimator >))
 
template<typename OutputIterator >
OutputIterator endEval (const ConstIterator &itb, const ConstIterator &ite, ConstIterator &itCurrent, SegmentIterator &first, SegmentIterator &last, OutputIterator result)
 
template<typename OutputIterator >
OutputIterator endEval (const ConstIterator &, const ConstIterator &ite, ConstIterator &itCurrent, SegmentIterator &, SegmentIterator &last, OutputIterator result, IteratorType)
 
template<typename OutputIterator >
OutputIterator endEval (const ConstIterator &itb, const ConstIterator &ite, ConstIterator &itCurrent, SegmentIterator &first, SegmentIterator &last, OutputIterator result, CirculatorType)
 
 MostCenteredMaximalSegmentEstimator (const MostCenteredMaximalSegmentEstimator &other)
 
MostCenteredMaximalSegmentEstimatoroperator= (const MostCenteredMaximalSegmentEstimator &other)
 

Private Attributes

ConstIterator myBegin
 
ConstIterator myEnd
 
SegmentComputer mySC
 
SCEstimator mySCEstimator
 

Detailed Description

template<typename SegmentComputer, typename SCEstimator>
class DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >

Aim: A model of CLocalCurveGeometricEstimator that assigns to each element of a (sub)range a quantity estimated from the most centered maximal segment passing through this element.

Description of template class 'MostCenteredMaximalSegmentEstimator'

Here is a basic example of curvature estimation:

  • 1. Construct an instance from a segment computer and a segment computer estimator
    typedef StabbingCircleComputer<ClassicIterator> SegmentComputer;
    typedef CurvatureFromDCAEstimator<SegmentComputer> SCEstimator;
    typedef MostCenteredMaximalSegmentEstimator<SegmentComputer,SCEstimator> CurvatureEstimator;
    SCEstimator sce;
    CurvatureEstimator estimator(sc, sce);
    ArithmeticalDSSComputer< std::vector< Z2i::Point >::const_iterator, int, 4 > SegmentComputer
  • 2. Initialize it with a range r and a grid step h
    estimator.init( r.begin(), r.end() );
  • 3. Get the estimations
    estimator.eval( r.begin(), r.end(), std::back_inserter(estimations), h );
    Template Parameters
    SegmentComputerat least a model of CForwardSegmentComputer
    SCEstimatora model of CSegmentComputerEstimator
    See also
    testMostCenteredMSEstimator.cpp
    exampleCurvature.cpp
    SaturatedSegmentation.h

Definition at line 83 of file MostCenteredMaximalSegmentEstimator.h.

Member Typedef Documentation

◆ ConstIterator

template<typename SegmentComputer , typename SCEstimator >
typedef SegmentComputer::ConstIterator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::ConstIterator

Definition at line 95 of file MostCenteredMaximalSegmentEstimator.h.

◆ Quantity

template<typename SegmentComputer , typename SCEstimator >
typedef SCEstimator::Quantity DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::Quantity

Definition at line 96 of file MostCenteredMaximalSegmentEstimator.h.

◆ Segmentation

template<typename SegmentComputer , typename SCEstimator >
typedef SaturatedSegmentation<SegmentComputer> DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::Segmentation

Definition at line 98 of file MostCenteredMaximalSegmentEstimator.h.

◆ SegmentIterator

template<typename SegmentComputer , typename SCEstimator >
typedef Segmentation::SegmentComputerIterator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::SegmentIterator

Definition at line 99 of file MostCenteredMaximalSegmentEstimator.h.

Constructor & Destructor Documentation

◆ MostCenteredMaximalSegmentEstimator() [1/3]

template<typename SegmentComputer , typename SCEstimator >
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::MostCenteredMaximalSegmentEstimator ( )
delete

Default constructor. Not valid.

◆ MostCenteredMaximalSegmentEstimator() [2/3]

template<typename SegmentComputer , typename SCEstimator >
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::MostCenteredMaximalSegmentEstimator ( const SegmentComputer aSegmentComputer,
const SCEstimator &  aSCEstimator 
)

Constructor.

Parameters
aSegmentComputera segment computer
aSCEstimatoran estimator

◆ ~MostCenteredMaximalSegmentEstimator()

template<typename SegmentComputer , typename SCEstimator >
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::~MostCenteredMaximalSegmentEstimator ( )
inline

Destructor.

Definition at line 120 of file MostCenteredMaximalSegmentEstimator.h.

120 {};

◆ MostCenteredMaximalSegmentEstimator() [3/3]

template<typename SegmentComputer , typename SCEstimator >
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::MostCenteredMaximalSegmentEstimator ( const MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator > &  other)
private

Copy constructor.

Parameters
otherthe object to clone. Forbidden by default.

Member Function Documentation

◆ BOOST_CONCEPT_ASSERT() [1/3]

template<typename SegmentComputer , typename SCEstimator >
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::BOOST_CONCEPT_ASSERT ( (concepts::CCurveLocalGeometricEstimator< SCEstimator >)  )
private

◆ BOOST_CONCEPT_ASSERT() [2/3]

template<typename SegmentComputer , typename SCEstimator >
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::BOOST_CONCEPT_ASSERT ( (concepts::CForwardSegmentComputer< SegmentComputer >)  )
private

◆ BOOST_CONCEPT_ASSERT() [3/3]

template<typename SegmentComputer , typename SCEstimator >
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::BOOST_CONCEPT_ASSERT ( (concepts::CSegmentComputerEstimator< SCEstimator >)  )
private

◆ BOOST_STATIC_ASSERT()

template<typename SegmentComputer , typename SCEstimator >
DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::BOOST_STATIC_ASSERT ( (boost::is_same< SegmentComputer, typename SCEstimator::SegmentComputer >::value)  )
private

◆ endEval() [1/3]

template<typename SegmentComputer , typename SCEstimator >
template<typename OutputIterator >
OutputIterator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::endEval ( const ConstIterator ,
const ConstIterator ite,
ConstIterator itCurrent,
SegmentIterator ,
SegmentIterator last,
OutputIterator  result,
IteratorType   
)
private

◆ endEval() [2/3]

template<typename SegmentComputer , typename SCEstimator >
template<typename OutputIterator >
OutputIterator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::endEval ( const ConstIterator itb,
const ConstIterator ite,
ConstIterator itCurrent,
SegmentIterator first,
SegmentIterator last,
OutputIterator  result 
)
private

Specialization of the end of the algorithm

Parameters
itbsubrange begin iterator
itesubrange end iterator
itCurrentcurrent iterator
firstiterator on the first maximal segment
lastiterator on the last maximal segment
resultoutput iterator on the estimated quantity
Returns
the estimated quantity from itCurrent till ite (excluded) NB: O(n)

◆ endEval() [3/3]

template<typename SegmentComputer , typename SCEstimator >
template<typename OutputIterator >
OutputIterator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::endEval ( const ConstIterator itb,
const ConstIterator ite,
ConstIterator itCurrent,
SegmentIterator first,
SegmentIterator last,
OutputIterator  result,
CirculatorType   
)
private

◆ eval() [1/2]

template<typename SegmentComputer , typename SCEstimator >
Quantity DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::eval ( const ConstIterator it,
const double  h = 1. 
)

Unique estimation

Parameters
itany valid iterator
hgrid size (must be > 0).
Returns
the estimated quantity at *it

NB: the whole range [myBegin , myEnd)| is scanned in the worst case

◆ eval() [2/2]

template<typename SegmentComputer , typename SCEstimator >
template<typename OutputIterator >
OutputIterator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::eval ( const ConstIterator itb,
const ConstIterator ite,
OutputIterator  result,
const double  h = 1. 
)

Estimation for a subrange [itb , ite )

Parameters
itbsubrange begin iterator
itesubrange end iterator
resultoutput iterator on the estimated quantity
hgrid size (must be > 0).
Returns
the estimated quantity from itb till ite (excluded)

NB: the whole range [myBegin , myEnd)| is scanned in the worst case

◆ init()

template<typename SegmentComputer , typename SCEstimator >
void DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::init ( const ConstIterator itb,
const ConstIterator ite 
)

Initialisation.

Parameters
itbbegin iterator
iteend iterator

◆ isValid()

template<typename SegmentComputer , typename SCEstimator >
bool DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::isValid ( ) const

Checks the validity/consistency of the object.

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

◆ operator=()

template<typename SegmentComputer , typename SCEstimator >
MostCenteredMaximalSegmentEstimator& DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::operator= ( const MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator > &  other)
private

Assignment.

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

Field Documentation

◆ myBegin

template<typename SegmentComputer , typename SCEstimator >
ConstIterator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::myBegin
private

begin and end iterators

Definition at line 175 of file MostCenteredMaximalSegmentEstimator.h.

◆ myEnd

template<typename SegmentComputer , typename SCEstimator >
ConstIterator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::myEnd
private

Definition at line 175 of file MostCenteredMaximalSegmentEstimator.h.

◆ mySC

template<typename SegmentComputer , typename SCEstimator >
SegmentComputer DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::mySC
private

segmentComputer used to segment

Definition at line 178 of file MostCenteredMaximalSegmentEstimator.h.

◆ mySCEstimator

template<typename SegmentComputer , typename SCEstimator >
SCEstimator DGtal::MostCenteredMaximalSegmentEstimator< SegmentComputer, SCEstimator >::mySCEstimator
private

object estimating the quantity from segmentComputer

Definition at line 181 of file MostCenteredMaximalSegmentEstimator.h.


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