|
| BOOST_CONCEPT_ASSERT ((concepts::CCellFunctor< Functor >)) |
|
| BOOST_CONCEPT_ASSERT ((concepts::CCellFunctor< KernelFunctor >)) |
|
| DigitalSurfaceConvolver (ConstAlias< Functor > f, ConstAlias< KernelFunctor > g, ConstAlias< KSpace > space) |
|
| DigitalSurfaceConvolver (const DigitalSurfaceConvolver &other) |
|
| ~DigitalSurfaceConvolver () |
|
void | init (const Point &pOrigin, ConstAlias< PairIterators > fullKernel, ConstAlias< std::vector< PairIterators > > masks) |
|
void | init (const Point &pOrigin, ConstAlias< DigitalKernel > fullKernel, ConstAlias< std::vector< PairIterators > > masks) |
|
template<typename SurfelIterator > |
Quantity | eval (const SurfelIterator &it) const |
|
template<typename SurfelIterator , typename EvalFunctor > |
EvalFunctor::Value | eval (const SurfelIterator &it, EvalFunctor functor) const |
|
template<typename SurfelIterator , typename OutputIterator > |
void | eval (const SurfelIterator &itbegin, const SurfelIterator &itend, OutputIterator &result) const |
|
template<typename SurfelIterator , typename OutputIterator , typename EvalFunctor > |
void | eval (const SurfelIterator &itbegin, const SurfelIterator &itend, OutputIterator &result, EvalFunctor functor) const |
|
template<typename SurfelIterator > |
CovarianceMatrix | evalCovarianceMatrix (const SurfelIterator &it) const |
|
template<typename SurfelIterator , typename EvalFunctor > |
EvalFunctor::Value | evalCovarianceMatrix (const SurfelIterator &it, EvalFunctor functor) const |
|
template<typename SurfelIterator , typename OutputIterator > |
void | evalCovarianceMatrix (const SurfelIterator &itbegin, const SurfelIterator &itend, OutputIterator &result) const |
|
template<typename SurfelIterator , typename OutputIterator , typename EvalFunctor > |
void | evalCovarianceMatrix (const SurfelIterator &itbegin, const SurfelIterator &itend, OutputIterator &result, EvalFunctor functor) const |
|
bool | isValid () const |
|
|
void | computeCovarianceMatrix (const Quantity *aMomentMatrix, CovarianceMatrix &aCovarianceMatrix) const |
| computeCovarianceMatrix compute the covariance matrix from matrix of moments. More...
|
|
void | fillMoments (Quantity *aMomentMatrix, const Spel &aSpel, double direction) const |
| fillMoments fill the matrix of moments with a given spel. More...
|
|
template<typename SurfelIterator > |
bool | core_eval (const SurfelIterator &it, Quantity &innerSum, Quantity &outerSum, bool useLastResults=false, Spel &lastInnerSpel=defaultInnerSpel, Spel &lastOuterSpel=defaultOuterSpel, Quantity &lastInnerSum=defaultInnerSum, Quantity &lastOuterSum=defaultOuterSum) const |
| core_eval method used ( in intern by eval() ) to compute the Quantity on a given surfel (*it) More...
|
|
template<typename SurfelIterator > |
bool | core_evalCovarianceMatrix (const SurfelIterator &it, CovarianceMatrix &innerMatrix, CovarianceMatrix &outerMatrix, bool useLastResults=false, Spel &lastInnerSpel=defaultInnerSpel, Spel &lastOuterSpel=defaultOuterSpel, Quantity *lastInnerMoments=defaultInnerMoments, Quantity *lastOuterMoments=defaultOuterMoments) const |
| core_evalCovarianceMatrix method used ( in intern by evalCovarianceMatrix() ) to compute the covariance matrix on a given surfel (*it) More...
|
|
| DigitalSurfaceConvolver () |
|
template<typename TFunctor, typename TKernelFunctor, typename TKSpace, typename TDigitalKernel, Dimension dimension = TKSpace::dimension>
class DGtal::DigitalSurfaceConvolver< TFunctor, TKernelFunctor, TKSpace, TDigitalKernel, dimension >
Description of class 'DigitalSurfaceConvolver'
Aim: Compute a convolution between a point on the boundary of a nD-shape and a convolution kernel : (f*g)(t). An optimization is available when you convolve your shape on adjacent cells using eval(itbegin, itend, output)
- Template Parameters
-
TFunctor | a model of a functor for the shape to convolve ( f(x) ). |
TKernelFunctor | a model of a functor for the convolution kernel ( g(x) ). |
TKSpace | space in which the shape is defined. |
TDigitalKernel | type of a convolution kernel (ImplicitBall in general case). |
Definition at line 75 of file DigitalSurfaceConvolver.h.
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator >
bool DGtal::DigitalSurfaceConvolver< TFunctor, TKernelFunctor, TKSpace, TDigitalKernel, dimension >::core_eval |
( |
const SurfelIterator & |
it, |
|
|
Quantity & |
innerSum, |
|
|
Quantity & |
outerSum, |
|
|
bool |
useLastResults = false , |
|
|
Spel & |
lastInnerSpel = defaultInnerSpel , |
|
|
Spel & |
lastOuterSpel = defaultOuterSpel , |
|
|
Quantity & |
lastInnerSum = defaultInnerSum , |
|
|
Quantity & |
lastOuterSum = defaultOuterSum |
|
) |
| const |
|
protected |
core_eval method used ( in intern by eval() ) to compute the Quantity on a given surfel (*it)
- Parameters
-
[in] | it | (iterator of a) surfel of the shape where the convolution is computed. |
[out] | innerSum | the result Quantity when centering with the innerSpel. |
[out] | outerSum | the result Quantity when centering with the outerSpel. |
[in] | useLastResults | if we can use last results (optimisation with masks) |
[in,out] | lastInnerSpel | last inner spel. Override at end of function with current inner spel (from surfel *it). Set empty if useLastResults is false. |
[in,out] | lastOuterSpel | last outer spel. Override at end of function with current outer spel (from surfel *it). Set empty if useLastResults is false. |
[in] | lastInnerSum | last Quantity when centering with inner spel. Set empty if useLastResults is false. |
[in] | lastOuterSum | last Quantity when centering with outer spel. Set empty if useLastResults is false. |
- Template Parameters
-
SurfelIterator | type of iterator on surfel |
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator >
bool DGtal::DigitalSurfaceConvolver< TFunctor, TKernelFunctor, TKSpace, TDigitalKernel, dimension >::core_evalCovarianceMatrix |
( |
const SurfelIterator & |
it, |
|
|
CovarianceMatrix & |
innerMatrix, |
|
|
CovarianceMatrix & |
outerMatrix, |
|
|
bool |
useLastResults = false , |
|
|
Spel & |
lastInnerSpel = defaultInnerSpel , |
|
|
Spel & |
lastOuterSpel = defaultOuterSpel , |
|
|
Quantity * |
lastInnerMoments = defaultInnerMoments , |
|
|
Quantity * |
lastOuterMoments = defaultOuterMoments |
|
) |
| const |
|
protected |
core_evalCovarianceMatrix method used ( in intern by evalCovarianceMatrix() ) to compute the covariance matrix on a given surfel (*it)
- Parameters
-
[in] | it | (iterator of a) surfel of the shape where the convolution is computed. |
[out] | innerMatrix | the result covariance matrix when centering with the innerSpel. |
[out] | outerMatrix | the result covariance matrix when centering with the outerSpel. |
[in] | useLastResults | if we can use last results (optimisation with masks) |
[in,out] | lastInnerSpel | last inner spel. Override at end of function with current inner spel (from surfel *it). Set empty if useLastResults is false. |
[in,out] | lastOuterSpel | last outer spel. Override at end of function with current outer spel (from surfel *it). Set empty if useLastResults is false. |
[in,out] | lastInnerMoments | last inner moments when centering with inner spel. Override at end of function with current inner moments (from surfel *it). Set empty if useLastResults is false. |
[in,out] | lastOuterMoments | last inner moments when centering with inner spel. Override at end of function with current outer moments (from surfel *it). Set empty if useLastResults is false. |
- Template Parameters
-
SurfelIterator | type of iterator on surfel |
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator >
Convolve the kernel at a position it.
- Parameters
-
[in] | it | (iterator of a) surfel of the shape where the convolution is computed. |
- Template Parameters
-
SurfelIterator | type of iterator of a surfel on the shape. |
- Returns
- the estimated quantity at *it : (f*g)(t)
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator , typename EvalFunctor >
Convolve the kernel at a position it and applies the functor functor on the result.
- Parameters
-
[in] | it | (iterator of a) surfel of the shape where the convolution is computed. |
[in] | functor | functor called with the result of the convolution. |
- Template Parameters
-
SurfelIterator | type of iterator of a surfel on the shape. |
EvalFunctor | type of functor on Quantity. |
- Returns
- the return quantity of functor after giving in parameter the result of the convolution at *it
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator , typename OutputIterator >
void DGtal::DigitalSurfaceConvolver< TFunctor, TKernelFunctor, TKSpace, TDigitalKernel, dimension >::eval |
( |
const SurfelIterator & |
itbegin, |
|
|
const SurfelIterator & |
itend, |
|
|
OutputIterator & |
result |
|
) |
| const |
Convolve the kernel at all positions of the range [itBegin, itEnd[ and outputs results sequentially with result iterator.
- Parameters
-
[in] | itbegin | (iterator of the) first surfel of the shape where the convolution is computed. |
[in] | itend | (iterator of the) last (excluded) surfel of the shape where the convolution is computed. |
[out] | result | iterator of an array where estimates quantities are set ( the estimated quantity from *itbegin till *itend (excluded)). |
- Template Parameters
-
SurfelIterator | type of iterator of a surfel on the shape. |
OutputIterator | type of iterator on an array when Quantity are stored. |
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator , typename OutputIterator , typename EvalFunctor >
void DGtal::DigitalSurfaceConvolver< TFunctor, TKernelFunctor, TKSpace, TDigitalKernel, dimension >::eval |
( |
const SurfelIterator & |
itbegin, |
|
|
const SurfelIterator & |
itend, |
|
|
OutputIterator & |
result, |
|
|
EvalFunctor |
functor |
|
) |
| const |
Convolve the kernel at all positions of the range [itBegin, itEnd[ and applies the functor functor on results outputed sequentially with result iterator.
- Parameters
-
[in] | itbegin | (iterator of the) first surfel of the shape where the convolution is computed. |
[in] | itend | (iterator of the) last (excluded) surfel of the shape where the convolution is computed. |
[out] | result | iterator of an array where estimates quantities are set ( the estimated quantity from *itbegin till *itend (excluded)). |
[in] | functor | functor called with the result of the convolution. |
- Template Parameters
-
SurfelIterator | type of iterator of a surfel on the shape. |
OutputIterator | type of iterator on an array when Quantity are stored. |
EvalFunctor | type of functor on Quantity. |
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator >
Convolve the kernel at a position it.
- Parameters
-
[in] | it | (iterator of a) surfel of the shape where the covariance matrix is computed. |
- Template Parameters
-
SurfelIterator | type of iterator of a surfel on the shape. |
- Returns
- the covariance matrix at *it
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator , typename EvalFunctor >
Convolve the kernel at a position it and applies the functor functor on the result.
- Parameters
-
[in] | it | (iterator of a) surfel of the shape where the covariance matrix is computed. |
[in] | functor | functor called with the result of the convolution. |
- Template Parameters
-
SurfelIterator | type of iterator of a surfel on the shape. |
EvalFunctor | type of functor on CovarianceMatrix. |
- Returns
- the result of the functor with the covariance matrix.
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator , typename OutputIterator >
void DGtal::DigitalSurfaceConvolver< TFunctor, TKernelFunctor, TKSpace, TDigitalKernel, dimension >::evalCovarianceMatrix |
( |
const SurfelIterator & |
itbegin, |
|
|
const SurfelIterator & |
itend, |
|
|
OutputIterator & |
result |
|
) |
| const |
Convolve the kernel at all positions of the range [itBegin, itEnd[ and outputs results sequentially with result iterator.
- Parameters
-
[in] | itbegin | (iterator of the) first surfel of the shape where the covariance matrix is computed. |
[in] | itend | (iterator of the) last (excluded) surfel of the shape where the covariance matrix is computed. |
[out] | result | iterator of an array where estimates covariance matrix are set ( the covariance matrix from *itbegin till *itend (excluded)). |
- Template Parameters
-
SurfelIterator | type of iterator of a surfel on the shape. |
OutputIterator | type of iterator on an array when Quantity are stored. |
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
template<typename SurfelIterator , typename OutputIterator , typename EvalFunctor >
void DGtal::DigitalSurfaceConvolver< TFunctor, TKernelFunctor, TKSpace, TDigitalKernel, dimension >::evalCovarianceMatrix |
( |
const SurfelIterator & |
itbegin, |
|
|
const SurfelIterator & |
itend, |
|
|
OutputIterator & |
result, |
|
|
EvalFunctor |
functor |
|
) |
| const |
Convolve the kernel at all positions of the range [itBegin, itEnd[ and applies the functor functor on results outputed sequentially with result iterator.
- Parameters
-
[in] | itbegin | (iterator of the) first surfel of the shape where the covariance matrix is computed. |
[in] | itend | (iterator of the) last (excluded) surfel of the shape where the covariance matrix is computed. |
[out] | result | iterator of an array where results of functor are set. |
[in] | functor | functor called with the result of the convolution. |
- Template Parameters
-
SurfelIterator | type of iterator of a surfel on the shape. |
OutputIterator | type of iterator on an array when Quantity are stored. |
EvalFunctor | type of functor on CovarianceMatrix. |
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
Intitialize the convolver using masks - allow to use the optimization with adjacent cells.
Stores the kernel implicitly: choose this init if you have not a lot of memory available or if your kernel size is big.
- Parameters
-
[in] | pOrigin | center (digital point) of the kernel support. |
[in] | fullKernel | pointer of the digital (full) kernel. |
[in] | masks | Vector of iterators (of spel) of the first and last spel of each masks. They must be ordered using a trit ({0,1,2}) encoded array. trit 0 => shifting_coord = -1 trit 1 => shifting_coord = 0 trit 2 => shifting_coord = 1 Example in 3D : zyx x y z mask[0] : base3(0) = 000 => shifting = {-1,-1,-1} mask[5] : base3(5) = 012 => shifting = { 1, 0,-1} |
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
Initialize the convolver using masks - allow to use the optimization with adjacent cells.
Stores the full kernel explicitly: choose this init if you have a lot of memory or if your kernel is small.
- Parameters
-
[in] | pOrigin | center (digital point) of the kernel support. |
[in] | fullKernel | pair of iterators of the full kernel. first is the first iterator (of spel) of the kernel support, second is the last iterator (of spel, excluded). |
[in] | masks | Vector of iterators (of spel) of the first and last spel of each masks. They must be ordered using a trit ({0,1,2}) encoded array. trit 0 => shifting_coord = -1 trit 1 => shifting_coord = 0 trit 2 => shifting_coord = 1 Example in 3D : zyx x y z mask[0] : base3(0) = 000 => shifting = {-1,-1,-1} mask[5] : base3(5) = 012 => shifting = { 1, 0,-1} |
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
default array of Quantity, used as default parameter in core_evalCovarianceMatrix function
Definition at line 334 of file DigitalSurfaceConvolver.h.
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
default Spel, used as default parameter in core_eval and core_evalCovarianceMatrix functions
Definition at line 332 of file DigitalSurfaceConvolver.h.
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
default array of Quantity, used as default parameter in core_evalCovarianceMatrix function
Definition at line 335 of file DigitalSurfaceConvolver.h.
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>
default Spel, used as default parameter in core_eval and core_evalCovarianceMatrix functions
Definition at line 333 of file DigitalSurfaceConvolver.h.
template<typename TFunctor , typename TKernelFunctor , typename TKSpace , typename TDigitalKernel , Dimension dimension = TKSpace::dimension>