DGtal 1.3.0
|
Aim: Implements the Shrouds Regularization algorithm of Nielson et al [90]. More...
#include <DGtal/geometry/surfaces/ShroudsRegularization.h>
Public Types | |
enum class | Regularization { AREA , SNAKE , SQUARED_CURVATURE } |
The enum class specifying the possible shrouds regularization. More... | |
typedef TDigitalSurfaceContainer | Container |
typedef ShroudsRegularization< Container > | Self |
typedef Container::KSpace | KSpace |
typedef KSpace::Space | Space |
typedef Space::RealVector | RealVector |
typedef Space::RealPoint | RealPoint |
typedef RealVector::Component | Scalar |
typedef IndexedDigitalSurface< Container > | IdxDigitalSurface |
typedef IdxDigitalSurface::Vertex | IdxVertex |
typedef IdxDigitalSurface::Surfel | IdxSurfel |
typedef IdxVertex | Vertex |
typedef std::vector< IdxSurfel > | IdxSurfelRange |
typedef std::vector< Scalar > | Scalars |
typedef std::vector< RealVector > | RealVectors |
typedef std::vector< RealPoint > | RealPoints |
Public Member Functions | |
Standard services (construction, initialization) | |
ShroudsRegularization () | |
Default constructor. The object is not valid. More... | |
ShroudsRegularization (CountedPtr< IdxDigitalSurface > surface) | |
void | init () |
void | setParams (double eps, double alpha=1.0, double beta=1.0) |
std::tuple< double, double, double > | getParams () const |
Accessor services | |
RealPoint | position (const Vertex v, const double t) const |
RealPoint | position (const Vertex v) const |
RealPoints | positions () const |
Dimension | orthDir (const Vertex v) const |
std::pair< Vertex, Dimension > | next (const std::pair< Vertex, Dimension > &v_i) const |
std::pair< Vertex, Dimension > | prev (const std::pair< Vertex, Dimension > &v_i) const |
Geometric services | |
void | parameterize () |
Computes the distances between the vertices along slices. More... | |
Scalar | c1 (const std::pair< Vertex, Dimension > &v_i) const |
std::tuple< Scalar, Scalar, Scalar > | c2_all (const std::pair< Vertex, Dimension > &v_i) const |
Regularization services | |
std::pair< double, double > | regularize (const Regularization reg=Regularization::SQUARED_CURVATURE, const double randomization=0.0, const double max_loo=0.0001, const int maxNb=100) |
double | energy (const Regularization reg=Regularization::SQUARED_CURVATURE) |
double | energySquaredCurvature () |
double | energySnake () |
double | energyArea () |
std::pair< double, double > | oneStepAreaMinimization (const double randomization=0.0) |
std::pair< double, double > | oneStepSnakeMinimization (const double alpha=1.0, const double beta=1.0, const double randomization=0.0) |
std::pair< double, double > | oneStepSquaredCurvatureMinimization (const double randomization=0.0) |
void | enforceBounds () |
Forces t to stay in ]0,1[. More... | |
Protected Member Functions | |
Internal methods | |
void | precomputeTopology () |
Private Member Functions | |
BOOST_CONCEPT_ASSERT ((concepts::CDigitalSurfaceContainer< TDigitalSurfaceContainer >)) | |
Private Attributes | |
CountedPtr< IdxDigitalSurface > | myPtrIdxSurface |
the indexed digital surface (internal surface representation). More... | |
const KSpace * | myPtrK |
A const pointer to the cellular space in which lives the digital surface. More... | |
Scalar | myEpsilon |
Scalar | myAlpha |
The alpha parameter for Snake first order regularization (~ area) More... | |
Scalar | myBeta |
The beta parameter for Snake second order regularization (~ curvature) More... | |
Vertex | myInvalid |
the index of the invalid vertex. More... | |
Scalars | myT |
RealPoints | myInsV |
RealPoints | myOutV |
std::vector< Dimension > | myOrthDir |
the direction axis of each dual edge. More... | |
std::vector< Vertex > | myNext [3] |
for each vertex, its successor on the slice of given axis direction. More... | |
std::vector< Vertex > | myPrev [3] |
for each vertex, its predessor on the slice of given axis direction. More... | |
Scalars | myNextD [3] |
Scalars | myPrevD [3] |
Aim: Implements the Shrouds Regularization algorithm of Nielson et al [90].
Description of template class 'ShroudsRegularization'
Represents a decomposition of a closed digital surface into three stacks of slices, one per dimension. Gives methods to optimize the positions of vertices and smooth the resulting surface, generally according to curvature-related regularizers.
TDigitalSurfaceContainer | any digital surface container (a model concepts::CDigitalSurfaceContainer), for instance a SetOfSurfels. |
Definition at line 73 of file ShroudsRegularization.h.
typedef TDigitalSurfaceContainer DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::Container |
Definition at line 79 of file ShroudsRegularization.h.
typedef IndexedDigitalSurface< Container > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::IdxDigitalSurface |
Definition at line 86 of file ShroudsRegularization.h.
typedef IdxDigitalSurface::Surfel DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::IdxSurfel |
Definition at line 88 of file ShroudsRegularization.h.
typedef std::vector< IdxSurfel > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::IdxSurfelRange |
Definition at line 90 of file ShroudsRegularization.h.
typedef IdxDigitalSurface::Vertex DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::IdxVertex |
Definition at line 87 of file ShroudsRegularization.h.
typedef Container::KSpace DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::KSpace |
Definition at line 81 of file ShroudsRegularization.h.
typedef Space::RealPoint DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::RealPoint |
Definition at line 84 of file ShroudsRegularization.h.
typedef std::vector< RealPoint > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::RealPoints |
Definition at line 93 of file ShroudsRegularization.h.
typedef Space::RealVector DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::RealVector |
Definition at line 83 of file ShroudsRegularization.h.
typedef std::vector< RealVector > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::RealVectors |
Definition at line 92 of file ShroudsRegularization.h.
typedef RealVector::Component DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::Scalar |
Definition at line 85 of file ShroudsRegularization.h.
typedef std::vector< Scalar > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::Scalars |
Definition at line 91 of file ShroudsRegularization.h.
typedef ShroudsRegularization< Container > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::Self |
Definition at line 80 of file ShroudsRegularization.h.
typedef KSpace::Space DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::Space |
Definition at line 82 of file ShroudsRegularization.h.
typedef IdxVertex DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::Vertex |
Definition at line 89 of file ShroudsRegularization.h.
|
strong |
The enum class specifying the possible shrouds regularization.
Enumerator | |
---|---|
AREA | |
SNAKE | |
SQUARED_CURVATURE |
Definition at line 96 of file ShroudsRegularization.h.
|
inline |
Default constructor. The object is not valid.
Definition at line 104 of file ShroudsRegularization.h.
|
inline |
Constructor from (closed) surface. Also calls methods precomputeTopology and init.
surface | a counted pointer on an indexed digital surface. |
Definition at line 113 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::init(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology().
|
private |
|
inline |
v_i | a pair (vertex,tangent direction) |
Definition at line 261 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myNextD, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPrevD.
|
inline |
v_i | a pair (vertex,tangent direction) |
Definition at line 271 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myNextD, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPrevD.
|
inline |
reg | your choice of regularization in AREA (not nice in 3D), SNAKE (not so bad), SQUARED_CURVATURE (works best) |
Definition at line 335 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energyArea(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energySnake(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energySquaredCurvature(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::SNAKE, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::SQUARED_CURVATURE.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::regularize(), and TEST_CASE().
double DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energyArea | ( | ) |
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energy().
double DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energySnake | ( | ) |
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energy().
double DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energySquaredCurvature | ( | ) |
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energy().
void DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::enforceBounds | ( | ) |
Forces t to stay in ]0,1[.
|
inline |
Retrieves the parameters that affect the output regularized shape.
Definition at line 167 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myAlpha, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myBeta, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myEpsilon.
|
inline |
Prepares the shroud for optimization. Must be called before any call to regularize, oneStepAreaMinimization, oneStepSnakeMinimization, oneStepSquaredCurvatureMinimization.
Definition at line 128 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myInsV, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myNextD, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myOutV, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPrevD, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPtrIdxSurface, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPtrK, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myT.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::ShroudsRegularization(), and TEST_CASE().
|
inline |
Useful to navigate tangentially along a slice.
v_i | a pair (vertex,tangent direction) |
Definition at line 216 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myNext, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myOrthDir.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology().
std::pair< double, double > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::oneStepAreaMinimization | ( | const double | randomization = 0.0 | ) |
Smooths the shape according to the minimization of area.
randomization | if greater than 0.0 add some perturbation to the solution. May be used for quitting a local minima. |
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::regularize().
std::pair< double, double > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::oneStepSnakeMinimization | ( | const double | alpha = 1.0 , |
const double | beta = 1.0 , |
||
const double | randomization = 0.0 |
||
) |
Smooths the shape according to the minimization of elastic + thin plate energy (like snakes).
\[ E^{snk}(C) = \int_C \alpha (x'(s)^2 + y'(s)^2) + \beta (x''(s)^2 + y''(s)^2) ds, \]
for \( C=(x(s),y(s)) \) and boundary constraints.
alpha | parameter for first order regularization (~ area) |
beta | parameter for second order regularization (~ curvature) |
randomization | if greater than 0.0 add some perturbation to the solution. May be used for quitting a local minima. |
Euler-Lagrange equations leads to necessary conditions: for all s, \( x''''(s) = 0 \) and \( y''''(s) = 0 \).
A vertex \( v(s) \) has a position \( X \). Next and previous vertices are denoted by \( Xn, Xnn, Xp, Xpp \). If i the tangent direction and k the orthogonal direction at \( X \), then \( x(s)=X[i], y(s)=X[k] \).
At a vertex \( v(s) \), the position is parameterized by t. Varying t only modifies the vertical position \( X[k] \), i.e. y. So \( y(t) = (1-t)*I[v][k] + t*O[v][k] \) (for \( I[v] \) and \( O[v] \) inside and outside voxel positions).
\( x' ~= ( Xn[i] - Xp[i] ) / (d(X,Xn)+d(X,Xp) \) does not depend on t. \( y' ~= ( Xn[k] - Xp[k] ) / (d(X,Xn)+d(X,Xp) \) does not depend on t. \( x'' ~= ( c_0 * Xn[i] - c_1 * X[i] + c_2 * Xp[i] ) \) does not depend on t.
for \( c_0, c_1, c_2 \) constants depending on \( d(X,Xn) \) and \( d(X,Xp) \). \( y'' ~= ( c_0 * Xn[k] - c_1 * X[k] + c_2 * Xp[k] ) \) solely depend on t.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::regularize().
std::pair< double, double > DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::oneStepSquaredCurvatureMinimization | ( | const double | randomization = 0.0 | ) |
Smooths the shape according to the minimization of squared curvature.
\[ E^{\kappa^2}(C) = \int_C (x'(s) y''(s) + x''(s) y'(s))^2 / (x'(s)^2 + y'(s)^2)^3 ds, \]
for \( C=(x(s),y(s)) \) and boundary constraints.
randomization | if greater than 0.0 add some perturbation to the solution. May be used for quitting a local minima. |
Euler-Lagrange equations leads to rather complex necessary conditions. At each position (we omit parameter s for making things more readable):
\[ 24*x'^3*x''^3*y' + x'''*( - 13*x'^4*x''*y' - 14*x'^2*x''*y'^3 - x''*y'^5 ) + y'''*( 8*x'^5*x'' + 4*x'^3*x''*y'^2 - 4*x'*x''*y'^4 ) + x''''*( x'^5*y' + 2*x'^3*y'^3 + x'*y'^5 ) + y''*( 12*x'^4*y'*y''' + 12*x'^2*y'^3*y''' - 24*x'^4*x''^2 + 5*x'^5*x''' + 51*x'^2*x''^2*y'^2 - 2*x'^3*x'''*y'^2 + 3*x''^2*y'^4 - 7*x'*x'''*y'^4 ) + y''^2*( -54*x'^3*x''*y' + 18*x'*x''*y'^3 ) + y''^3*( 3*x'^4 - 21*x'^2*y'^2 ) + y''''*( - x'^6 - 2*x'^4*y'^2 - x'^2*y'^4 ) == 0 \]
A vertex \( v(s) \) has a position \( X \). Next and previous vertices are denoted by \( Xn, Xnn, Xp, Xpp \). If i the tangent direction and k the orthogonal direction at \( X \), then \( x(s)=X[i], y(s)=X[k] \).
At a vertex \( v(s) \), the position is parameterized by t. Varying t only modifies the vertical position \( X[k] \), i.e. y. So \( y(t) = (1-t)*I[v][k] + t*O[v][k] \) (for \( I[v] \) and \( O[v] \) inside and outside voxel positions).
The Euler-Lagrange are factorized as above in order to isolate at best the parameter t of vertex \( v(s) \).
all \( y'' \) are sumed up, while the rest gives a constant.
\( x' ~= ( Xn[i] - Xp[i] ) / (d(X,Xn)+d(X,Xp) \) does not depend on t. \( y' ~= ( Xn[k] - Xp[k] ) / (d(X,Xn)+d(X,Xp) \) does not depend on t. \( x'' ~= ( c_0 * Xn[i] - c_1 * X[i] + c_2 * Xp[i] ) \) does not depend on t.
for \( c_0, c_1, c_2 \) constants depending on \( d(X,Xn) \) and \( d(X,Xp) \). \( y'' ~= ( c_0 * Xn[k] - c_1 * X[k] + c_2 * Xp[k] ) \) solely depend on t. where \( X[k] = y(t) = (1-t)*I[v][k] + t*O[v][k]. \) And so on.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::regularize().
|
inline |
Useful to find the two tangent directions to a given vertex (i.e. (orthDir(v)+1)%3
and (orthDir(v)+2)%3
).
Definition at line 208 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myOrthDir.
|
inline |
Computes the distances between the vertices along slices.
Definition at line 243 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myInvalid, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myNext, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myNextD, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPrev, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPrevD, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myT, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::position().
|
inline |
v | any valid vertex. |
Definition at line 189 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myInsV, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myOutV, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myT.
|
inline |
v | any valid vertex. |
t | some adjustement parameter |
Definition at line 182 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myInsV, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myOutV.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::parameterize(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::positions().
|
inline |
Definition at line 196 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myT, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::position().
Referenced by TEST_CASE().
|
inlineprotected |
This method precomputes the neighbors of each vertex along each crossing curves. Must be called at shroud initialization.
Definition at line 476 of file ShroudsRegularization.h.
References DGtal::Trace::error(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myInvalid, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myNext, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myOrthDir, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPrev, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPtrIdxSurface, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPtrK, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myT, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::next(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::prev(), and DGtal::trace.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::ShroudsRegularization().
|
inline |
Useful to navigate tangentially along a slice.
v_i | a pair (vertex,tangent direction) |
Definition at line 227 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myOrthDir, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myPrev.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology().
|
inline |
Generic method for shrouds regularization.
reg | your choice of regularization in AREA (not nice in 3D), SNAKE (not so bad), SQUARED_CURVATURE (works best) |
randomization | if greater than 0.0 add some perturbation to the solution. May be used for quitting a local minima. |
max_loo | the maximum \( l_\infty \)-norm of one step of regularization before stopping the regularization. |
maxNb | the maximum number of optimization steps. |
Definition at line 304 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::energy(), DGtal::Trace::info(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myAlpha, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myBeta, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::oneStepAreaMinimization(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::oneStepSnakeMinimization(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::oneStepSquaredCurvatureMinimization(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::SNAKE, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::SQUARED_CURVATURE, and DGtal::trace.
Referenced by TEST_CASE().
|
inline |
Sets some parameters that affect the output regularized shape.
eps | the bounds for varying the positions of vertices in ]0,1[ |
alpha | parameter for Snake first order regularization (~ area) |
beta | parameter for Snake second order regularization (~ curvature) |
Definition at line 154 of file ShroudsRegularization.h.
References DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myAlpha, DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myBeta, and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::myEpsilon.
|
private |
The alpha parameter for Snake first order regularization (~ area)
Definition at line 541 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::getParams(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::regularize(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::setParams().
|
private |
The beta parameter for Snake second order regularization (~ curvature)
Definition at line 543 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::getParams(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::regularize(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::setParams().
|
private |
The limiting bounds for the displacement of vertices along their unit dual edge: \( \lbrack \epsilon, 1-\epsilon \rbrack \)
Definition at line 539 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::getParams(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::setParams().
|
private |
the vector of dual points lying inside (inside extremity of each dual edge).
Definition at line 552 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::init(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::position().
|
private |
the index of the invalid vertex.
Definition at line 545 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::parameterize(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology().
|
private |
for each vertex, its successor on the slice of given axis direction.
Definition at line 559 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::next(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::parameterize(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology().
|
private |
for each vertex, the estimated distance to its successor on the slice of given axis direction.
Definition at line 564 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::c1(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::c2_all(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::init(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::parameterize().
|
private |
the direction axis of each dual edge.
Definition at line 557 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::next(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::orthDir(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::prev().
|
private |
the vector of dual points lying outside (outside extremity of each dual edge).
Definition at line 555 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::init(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::position().
|
private |
for each vertex, its predessor on the slice of given axis direction.
Definition at line 561 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::parameterize(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::prev().
|
private |
for each vertex, the estimated distance to its predessor on the slice of given axis direction.
Definition at line 567 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::c1(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::c2_all(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::init(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::parameterize().
|
private |
the indexed digital surface (internal surface representation).
Definition at line 534 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::init(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology().
|
private |
A const pointer to the cellular space in which lives the digital surface.
Definition at line 536 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::init(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology().
|
private |
the vector of vertex displacements along their dual edge (each value lies in \( \lbrack \epsilon, 1-\epsilon \rbrack \)), which is optimized by the shrouds algorithm.
Definition at line 549 of file ShroudsRegularization.h.
Referenced by DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::init(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::parameterize(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::position(), DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::positions(), and DGtal::ShroudsRegularization< TDigitalSurfaceContainer >::precomputeTopology().