34 #if defined(IntegralInvariantVolumeEstimator_RECURSES) 35 #error Recursive header files inclusion detected in IntegralInvariantVolumeEstimator.h 36 #else // defined(IntegralInvariantVolumeEstimator_RECURSES) 38 #define IntegralInvariantVolumeEstimator_RECURSES 40 #if !defined IntegralInvariantVolumeEstimator_h 42 #define IntegralInvariantVolumeEstimator_h 47 #include "DGtal/base/Common.h" 49 #include "DGtal/kernel/BasicPointFunctors.h" 50 #include "DGtal/kernel/CPointPredicate.h" 51 #include "DGtal/topology/CCellFunctor.h" 52 #include "DGtal/topology/CCellularGridSpaceND.h" 53 #include "DGtal/geometry/surfaces/FunctorOnCells.h" 55 #include "DGtal/shapes/GaussDigitizer.h" 56 #include "DGtal/shapes/Shapes.h" 58 #include "DGtal/geometry/surfaces/DigitalSurfaceConvolver.h" 59 #include "DGtal/geometry/surfaces/estimation/IIGeometricFunctors.h" 60 #include "DGtal/shapes/EuclideanShapesDecorator.h" 62 #include "DGtal/shapes/implicit/ImplicitBall.h" 112 template <
typename TKSpace,
typename TPo
intPredicate,
typename TVolumeFunctor>
163 typename VolumeFunctor::Argument >::value ));
245 template <
typename SurfelConstIterator>
246 void init(
const double _h, SurfelConstIterator itb, SurfelConstIterator ite );
262 template<
typename SurfelConstIterator >
286 template <
typename OutputIterator,
typename SurfelConstIterator>
287 OutputIterator
eval( SurfelConstIterator itb,
288 SurfelConstIterator ite,
289 OutputIterator result )
const;
331 template <
typename TKSpace,
typename TPo
intPredicate,
typename TVolumeFunctor>
341 #include "DGtal/geometry/surfaces/estimation/IntegralInvariantVolumeEstimator.ih" 346 #endif // !defined IntegralInvariantVolumeEstimator_h 348 #undef IntegralInvariantVolumeEstimator_RECURSES 349 #endif // else defined(IntegralInvariantVolumeEstimator_RECURSES) BOOST_STATIC_ASSERT((concepts::ConceptUtils::SameType< typename Convolver::Quantity, typename VolumeFunctor::Argument >::value))
void selfDisplay(std::ostream &out) const
GaussDigitizer< Space, KernelSupport > DigitalShapeKernel
std::pair< KernelConstIterator, KernelConstIterator > PairIterators
Aim: Smart pointer based on reference counts.
Aim: SpaceND is a utility class that defines the fundamental structure of a Digital Space in ND...
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
std::set< SCell > SurfelSet
Preferred type for defining a set of surfels (always signed cells).
~IntegralInvariantVolumeEstimator()
Aim: Defines a functor on cells.
CountedPtr< Domain > myShapeDomain
Smart pointer on domain.
int Value
The type used for convolutions.
functors::PointFunctorFromPointPredicateAndDomain< PointPredicate, Domain, unsigned int > ShapePointFunctor
IntegralInvariantVolumeEstimator(VolumeFunctor fct=VolumeFunctor())
EuclideanShapesCSG< KernelSupport, KernelSupport > EuclideanMinus
FunctorOnCells< ShapePointFunctor, KSpace > ShapeSpelFunctor
GaussDigitizer< Space, EuclideanMinus > DigitalShape
Aim: This class implement an Integral Invariant estimator which computes for each surfel the volume o...
void attach(ConstAlias< KSpace > K, ConstAlias< PointPredicate > aPointPredicate)
ImplicitBall< Space > KernelSupport
VolumeFunctor::Quantity Quantity
The returned type of the estimator, depends on the functor.
Aim: Defines a unary functor, which associates arguments to results.
Aim: implements basic MxN Matrix services (M,N>=1).
Aim: Convert a functor on Digital Point to a Functor on Khalimsky Cell.
CountedPtr< Convolver > myConvolver
Convolver.
Quantity eval(SurfelConstIterator it) const
Self & operator=(const Self &other)
Aim: Constructive Solid Geometry (CSG) between models of CEuclideanBoundedShape and CEuclideanOriente...
Space::RealPoint RealPoint
Scalar myH
precision of the grid
Convolver::PairIterators PairIterators
Aim: Defines a predicate on a point.
Scalar myRadius
"digital" radius of the kernel (buy may be non integer).
Create a point functor from a point predicate and a domain.
Aim: A class for computing the Gauss digitization of some Euclidean shape, i.e. its intersection with...
std::ostream & operator<<(std::ostream &out, const ClosedIntegerHalfPlane< TSpace > &object)
CountedPtr< ShapeSpelFunctor > myShapeSpelFunctor
Smart pointer on functor spel -> {0,1}.
VolumeFunctor myFct
The volume functor that transforms the volume into a quantity.
Aim: model of CEuclideanOrientedShape and CEuclideanBoundedShape concepts to create a ball in nD...
CountedConstPtrOrConstPtr< PointPredicate > myPointPredicate
Smart pointer (if required) on a point predicate.
SurfelSet::const_iterator ConstIteratorKernel
DigitalSurfaceConvolver< ShapeSpelFunctor, KernelSpelFunctor, KSpace, DigitalShapeKernel > Convolver
CountedPtr< KernelSupport > myKernel
Euclidean kernel.
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: A wrapper class around a STL associative container for storing sets of digital points within som...
Space::RealVector RealVector
DigitalSetSelector< Domain, BIG_DS+HIGH_VAR_DS >::Type DigitalSet
Represents a signed cell in a cellular grid space by its Khalimsky coordinates and a boolean value...
const KernelSpelFunctor myKernelFunctor
Kernel functor (on Spel)
Aim: This concept describes a cellular grid space in nD. In these spaces obtained by cartesian produc...
void init(const double _h, SurfelConstIterator itb, SurfelConstIterator ite)
KSpace::SurfelSet SurfelSet
void setParams(const double dRadius)
Convolver::CovarianceMatrix Matrix
HyperRectDomain< Space > Domain
IntegralInvariantVolumeEstimator< TKSpace, TPointPredicate, TVolumeFunctor > Self
functors::ConstValueCell< Value, Spel > KernelSpelFunctor
BOOST_CONCEPT_ASSERT((concepts::CCellularGridSpaceND< KSpace >))
Aim: Define a simple functor that returns a constant quantity (0 by default).
TVolumeFunctor VolumeFunctor
Matrix::Component Component
CountedPtr< DigitalShapeKernel > myDigKernel
Digital kernel.
TPointPredicate PointPredicate
std::vector< DigitalSet *> myKernelsSet
Array of shifting masks. Size = 9 for each shifting (0-adjacent and full kernel included) ...
std::vector< PairIterators > myKernels
array of begin/end iterator of shifting masks.
CountedPtr< ShapePointFunctor > myShapePointFunctor
Smart pointer on functor point -> {0,1}.