Boundary-Structure-Aware Transfer Function


Introduction

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

Source code

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.

Dataset

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

Dependencies

The tool requires CUDA compiler nvcc and runtime.

Running

The tool can be built and run as following steps:
  1. To build the executables, run make, which will generate two executables lapl and occl for generating Laplacian and occlusion of a volume dataset, respectively.
  2. 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.
  3. 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.

Publication

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]

Citation

@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}
}
					

Contact