-
Notifications
You must be signed in to change notification settings - Fork 5
Examples ultraVolume2Mesh
ultraVolume2Mesh reconstructs a watertight surface mesh from a input volume based on a user-defined iso-value, which defines a surface shell in the given volume. The core of this application uses the iso-surface extraction algorithms implemented in Ultraliser: either the marching cubes (MC) or the advanced dual marching cubes (DMC) algorithms. Further details on the isosurface extraction algorithms are available.
In this page, we will present a few examples that demonstrate how to use the ultraVolume2Mesh to build smooth and optimized surface meshes from input volumes.
-
This application works only with bit volumes (which store every voxel in a single bit, i.e. empty or full voxel) and single channel grayscale volumes (which store every voxel in 8, 16, 32 or 64 bits). Multi-channel volumes are not supported by the current version.
-
If the input is a bit volume, the iso-surface parameters are ignored by the application.
This example reconstructs two watertight meshes using two different iso-ranges: 10 - 210 and 120 - 260. It uses 3-way solid voxelization to fill the interior of the volume to reduce the floating mesh partitions and improve the reconstruction quality.
The commands used in this example are as follows:
ultraVolume2Mesh \
--volume ultraVolume2Mesh/input/chest/chest.hdr --output-directory ultraVolume2Mesh/example-1 \
--project-xy --project-zy --project-xz --solid --voxelization-axis xyz \
--adaptive-optimization --laplacian-iterations 15 \
--iso-option range --min-value 120 --max-value 260 --prefix 120_260 \
--export-obj-mesh \
--ignore-marching-cubes-mesh --ignore-laplacian-mesh --ignore-optimized-mesh
ultraVolume2Mesh \
--volume ultraVolume2Mesh/input/chest/chest.hdr --output-directory ultraVolume2Mesh/example-1 \
--project-xy --project-zy --project-xz --solid --voxelization-axis xyz \
--adaptive-optimization --laplacian-iterations 15 \
--iso-option range --min-value 10 --max-value 210 --prefix 10_210 \
--export-obj-mesh \
--ignore-marching-cubes-mesh --ignore-laplacian-mesh --ignore-optimized-mesh
The input volume chest
is an 8-bit .HDR/.IMG volume. The volume type and dimensions are defined in the ASCII file chest.hdr
, while the raw data is defined in the chest.img
file. To differentiate between the artifacts of the two commands, we set the prefix with the range of each command: --prefix 10_210
and --prefix 120_60
.
The resulting meshes are generated in the meshes
subdirectory, while the projections are generated in the projections
subdirectory. Table 1 demonstrates a side-by-side comparison between the reconstructed meshes and projections of each iso-range.
Iso Range | 10 - 210 | 120 - 260 |
---|---|---|
Mesh | ||
XZ Projection |
Table 1
Copyright © 2022 - Blue Brain Project / Ecole Polytechnique Fédérale de Lausanne (EPFL)