add custom initialization of gray image to user manual

and re-organize to have both custom initializations (gray level and
segmented) together
This commit is contained in:
Jane Tournois 2021-02-15 16:27:40 +01:00
parent 7c9e45206d
commit 032ad19677
3 changed files with 34 additions and 10 deletions

View File

@ -573,13 +573,6 @@ constructor of the `Mesh_criteria` instance.
Cut view of a 3D mesh produced from an implicit domain
\cgalFigureEnd
\subsubsection Mesh_33DDomainsGrayImageIsosurfaces 3D Domains Bounded by Isosurfaces in 3D Gray-Level Images
The following example produces a 3D mesh for a domain whose boundary surface
is the isosurface associated to an isovalue inside the input gray-level
3D image. In the distribution you can also find the example \ref Mesh_3/mesh_3D_gray_vtk_image.cpp which can deal with DICOM files as input.
\cgalExample{Mesh_3/mesh_3D_gray_image.cpp}
\subsection Mesh_3MeshingMultipleDomains Meshing Multiple Domains
@ -682,8 +675,18 @@ This allows to remesh a surface, and is equivalent to the function `make_surface
View of a remeshed surface. (Left) input mesh (Right) output mesh. Code from subsection \ref Mesh_3RemeshingPolyhedralSurface generates the file.
\cgalFigureEnd
\subsection Mesh_3DomainsFromSegmented3DImages Domains From Segmented 3D Images
\subsection Mesh_3DomainsFrom3DImages Domains From 3D Images
\subsubsection Mesh_33DDomainsGrayImageIsosurfaces 3D Domains Bounded by Isosurfaces in 3D Gray-Level Images
The following example produces a 3D mesh for a domain whose boundary surface
is the isosurface associated to an isovalue inside the input gray-level
3D image. In the distribution you can also find the example \ref Mesh_3/mesh_3D_gray_vtk_image.cpp which can deal with DICOM files as input.
\cgalExample{Mesh_3/mesh_3D_gray_image.cpp}
\subsubsection Mesh_3DomainsFromSegmented3DImages Domains From Segmented 3D Images
\anchor Mesh_3_subsection_examples_3d_image
The following code produces a 3D mesh from
a 3D image. The image is a segmented medical image in which each
@ -703,7 +706,7 @@ The resulting mesh is shown in \cgalFigureRef{figureliver_3d_image_mesh}.
Cut view of a 3D mesh produced from a segmented liver image. Code from subsection \ref Mesh_3_subsection_examples_3d_image generates this file.
\cgalFigureEnd
\subsubsection Mesh_3DomainsFromSegmented3DImagesWithCustomInitialization Domains From Segmented 3D Images, with a Custom Initialization
\subsubsection Mesh_3DomainsFrom3DImagesWithCustomInitialization Domains From 3D Images, with a Custom Initialization
The example \ref Mesh_3/mesh_3D_image_with_custom_initialization.cpp is a modification
of \ref Mesh_3/mesh_3D_image.cpp. The goal of that example is to show how
@ -788,6 +791,25 @@ create a 3D image using the undocumented API of CGAL_ImageIO.
The code of the function `%random_labeled_image()` is in the header file \ref
Mesh_3/random_labeled_image.h\.
The example \ref Mesh_3/mesh_3D_gray_image_with_custom_initialization.cpp is another
custom initialization example, for meshing of 3D gray-level images. Similarly to
the segmented image example above, the code consists in:
-# the creation of an empty `%c3t3` object,
-# a call to a non-documented function
`initialize_triangulation_from_gray_image()` that inserts points in
the triangulation,
-# then the call to `refine_mesh_3()`.
\snippet Mesh_3/mesh_3D_gray_image_with_custom_initialization.cpp Meshing
The code of the function `initialize_triangulation_from_gray_image()` is
in the non-documented header \ref
CGAL/Mesh_3/initialize_triangulation_from_gray_image.h\. As it is
undocumented and may be removed or modified at any time, if you wish to
use it then you should copy-paste it to your user code.
\subsection Mesh_3UsingVariableSizingField Using Variable Sizing Field
\subsubsection Mesh_3SizingFieldasanAnalyticalFunction Sizing Field as an Analytical Function

View File

@ -1,9 +1,11 @@
/*!
\example Mesh_3/implicit_functions.cpp
\example Mesh_3/mesh_3D_image.cpp
\example Mesh_3/mesh_3D_gray_image_with_custom_initialization.cpp
\example Mesh_3/mesh_3D_image_with_features.cpp
\example Mesh_3/mesh_3D_image_with_custom_initialization.cpp
\example Mesh_3/random_labeled_image.h
\example CGAL/Mesh_3/initialize_triangulation_from_gray_image.h
\example CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h
\example Mesh_3/mesh_3D_image_variable_size.cpp
\example Mesh_3/mesh_hybrid_mesh_domain.cpp

View File

@ -59,7 +59,7 @@ int main(int argc, char* argv[])
domain,
image,
criteria,
2.9f,
2.9f,//isolevel
Image_word_type(0));
CGAL::refine_mesh_3(c3t3, domain, criteria);
/// [Meshing]