Skip to content

Examples ultraVolume2Mesh

Marwan Abdellah edited this page Jul 27, 2022 · 1 revision

About the Application

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.

Notes

  1. 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.

  2. If the input is a bit volume, the iso-surface parameters are ignored by the application.

Example 1

Description

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.

Command Line

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

Input & Output Data

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)