Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementation of the L-Algorithm #1744

Merged
merged 10 commits into from
Oct 9, 2024
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
# DGtal 1.5beta

## New features

- *Geometry*
- Implementation of the plane-probing L-algorithm (Tristan Roussillon, [#1744](https://github.com/DGtal-team/DGtal/pull/1744))

## Bug fixes

- *Geometry*
- Bug fix in ArithmeticalDSSComputerOnSurfels (Tristan Roussillon, [#1742](https://github.com/DGtal-team/DGtal/pull/1742))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ int main(void)
//! [PlaneProbingTetrahedronEstimatorConstruction]
// The general form is ProbingEstimator<Predicate, mode> where
// - Predicate is a model of concepts::PointPredicate, see DigitalPlanePredicate or DigitalSurfacePredicate for instance,
// - mode specifies the candidate set, it is one of { ProbingMode::H, ProbingMode::R, ProbingMode::R1 }.
// - mode specifies the candidate set, it is one of { ProbingMode::H, ProbingMode::R, ProbingMode::R1, ProbingMode::L }.
using DigitalPlane = DigitalPlanePredicate<Space>;
using Estimator = PlaneProbingTetrahedronEstimator<DigitalPlane, ProbingMode::R1>;

Expand Down
18 changes: 18 additions & 0 deletions src/DGtal/doc/global.bib
Original file line number Diff line number Diff line change
Expand Up @@ -1329,6 +1329,24 @@ @article{LMRJMIV2020
HAL_VERSION = {v1},
}

@InProceedings{Lu2022,
author="Lu, Jui-Ting
and Roussillon, Tristan
and Coeurjolly, David",
editor="Baudrier, {\'E}tienne
and Naegel, Beno{\^i}t
and Kr{\"a}henb{\"u}hl, Adrien
and Tajine, Mohamed",
title="A New Lattice-Based Plane-Probing Algorithm",
booktitle="Discrete Geometry and Mathematical Morphology",
year="2022",
publisher="Springer International Publishing",
address="Cham",
pages="366--381",
abstract="Plane-probing algorithms have become fundamental tools to locally capture arithmetical and geometrical properties of digital surfaces (boundaries of a connected set of voxels), and especially normal vector information. On a digital plane, the overall idea is to consider a local pattern, a triangle, that is expanded starting from a point of interest using simple probes of the digital plane with a predicate ``Is a point x in the digital plane?''. Challenges in plane-probing methods are to design an algorithm that terminates on a triangle with several geometrical properties: its normal vector should match with the expected one for digital plane (correctness), the triangle should be as compact as possible (acute or right angles only), and probes should be as close as possible to the source point (locality property). In addition, we also wish to minimize the number of iterations or probes during the computations. Existing methods provide correct outputs but only experimental evidence for these properties. In this paper, we present a new plane-probing algorithm that is theoretically correct on digital planes, and with better experimental compactness and locality than existing solutions. Additional properties of this new approach also suggest that theoretical proofs of the aforementioned geometrical properties could be achieved.",
isbn="978-3-031-19897-7"
}

@INPROCEEDINGS{Lachaud03c,
AUTHOR = {J.-O. Lachaud and A. Vialard},
TITLE = {Geometric measures on arbitrary dimensional digital surfaces},
Expand Down
2 changes: 1 addition & 1 deletion src/DGtal/geometry/doc/modulePlaneProbing.dox
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ testPlaneProbingParallelepipedEstimator.cpp.

\section sectPlaneProbing1 Introduction to plane-probing algorithms

A plane-probing algorithm (see @cite LPRJMIV2017, @cite RLDGCI2019 and @cite LMRJMIV2020)
A plane-probing algorithm (see @cite LPRJMIV2017, @cite RLDGCI2019, @cite LMRJMIV2020 and @cite Lu2022)
computes the normal vector of a set of digital points
from a starting point and a predicate \b InPlane: "Is a point x in the set of digital points?".
This predicate is used to probe the set as locally as possible
Expand Down
2 changes: 1 addition & 1 deletion src/DGtal/geometry/doc/packageGeometry.dox
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ of arbitrary dimension, by the means of separable and incremental distance trans
- \subpage moduleIntegralInvariant <!--Integral invariant curvature estimator 2D/3D--> (Jérémy Levallois, David Coeurjolly, Jacques-Olivier Lachaud)
- \subpage LocalEstimatorsFromSurfel (David Coeurjolly)
- \subpage moduleVCM (Louis Cuel, Jacques-Olivier Lachaud, Quentin Mérigot, Boris Thibert)
- \subpage modulePlaneProbing (Jacques-Olivier Lachaud, Jocelyn Meyron, Tristan Roussillon)
- \subpage modulePlaneProbing (Jacques-Olivier Lachaud, Jui-Ting Lu, Jocelyn Meyron, Tristan Roussillon)
- \subpage moduleMaximalSegmentSliceEstimation (Jocelyn Meyron, Tristan Roussillon)

- Mesh geometric estimators
Expand Down
Loading
Loading