Boundary-Structure-Aware Transfer Function is a tool that combines the advantages of the boundary-based and structure-based methods. By taking a volume data as input, the tool can identify object structures by differentiating surrounding information of each voxel, and also extract object boundaries by transforming a continuously changed area into a region with consistent intensity. Therefore, the tool can capture the structure and boundary information of a volume data in a more robust manner. The derived information allows us to build new 2D transfer functions for better classifying interior and exterior materials that are difficult to be identified using existing methods.
For example, our method can identify the specially shaped hole structure of a combustion simulation case, shown as the red color in the above image (a), on the frame structure shown in the image (b).
Click here
to download the source code, src.zip, to generate Laplacian and occlusion of a volume dataset, which are the key steps of our approach and are accelerated using GPUs.
The tool supports regular volume data. We provide two sample volume datasets. Each dataset contains two files: one head file and one data file. The head file indicates the number of grid points along each axis (x, y, z), and the data type (such as byte, int, float, etc.). The data file contains the 3D array of the volume in the C row-major order.
- A synthetic volume data that contains two concentric nested cylinders in 3D: 3d_cylinder.zip
- A combustion simulation dataset made available by Dr. Jacqueline Chen at Sandia National Laboratories: hrr.zip
The tool requires CUDA compiler nvcc and runtime.
The tool can be built and run as following steps:
- To build the executables, run
make
, which will generate two executables lapl
and occl
for generating Laplacian and occlusion of a volume dataset, respectively.
- To generate Laplacian, run
lapl in_file x y z out_file
, where in_file
is the input volume, x, y, z
are the volume dimensions, and out_file
is the output Laplaican data.
- To generate occlusion, run
occl in_file x y z out_file_sum out_file_std
, where in_file
is the input volume, x, y, z
are the volume dimensions, out_file_sum
is the output occlusion sum data, and out_file_std
is the output occlusion standard deviation data.
Boundary-Structure-Aware Transfer Functions for Volume Classification
Lina Yu, Hongfeng Yu.
Proceedings of SIGGRAPH Asia 2017 Symposium on Visualization (SA), Bangkok, Thailand, November, 2017.
DOI: https://doi.org/10.1145/3139295.3139306
[
PAPER]
@inproceedings{yu2017boundary,
title={Boundary-structure-aware transfer functions for volume classification},
author={Yu, Lina and Yu, Hongfeng},
booktitle={SIGGRAPH Asia 2017 Symposium on Visualization},
pages={1--8},
year={2017}
}