Author | | | Overview | | | Algorithm | | | Data | | | Implementation | | | Usage | | | Future work | | | Doxygen | | | References |
Andrej Varchola
OverviewThis work is based on original work of Eric B. Blum et al. [1]. Authors have developed interactive user interface for specifying and visualizing multi-dimensional transfer functions, which enable classification of multi-dimensional volume data.
AlgorithmVisualization of multi-dimensional transfer function is based on parallel coordinates, which is a standard approach for analyzing data of higher dimension. Points from n-dimensional space are represented as poly-lines with vertices on parallel axes. Multi-dimensional classifier for volume classification is interactively constructed by using of interactive widgets. 3D visualization is implemented with 2D texture slicing.
DataOriginal data are RAW volumetric CT data (head, aneurysm) available from public domain. Scale space is constructed in a pre-processing step by applying of Gaussian filter with different kernels. This filtering reminds of filter bank approach with low-pass filters. As the width of Gaussian kernel is increased, higher frequencies are attenuated. The Gaussian filters utilized in this work have kernel sizes 36, 64, 99.
ImplementationC++ was used as programming language for development. Graphical user interface was implemented in Qt 4.3 using OpenGL with Nvidia Cg shading language. Coding was done in MS Visual C++ 2008 Express Edition. Project files were configured using CMake.
UsageUser can select from two default datasets which have to be located in the same directory as program's executable. After loading of dataset, user has to define initial transfer functions for every scale. It is recommended to select pre-defined linear function for scale zero (original data) and transfer function called 'zeros' for other scales.
User can start with viewing slices in the left window of the slice view (mouse-wheel rotation is used for viewing). Left button click in the slice area makes rectangular selection of volume data. Visualization of multi-scale parallel coordinates is shown in the middle of the program window. 3D view widget can be rotated with mouse interaction. Because of rendering with slice-based approach only in z-direction, some artefacts might occur at certain viewing points. Transfer functions are edited in RGBA fashion, each channel separately. Different scales can be switched in the context of tab widget. Future workSeveral features of the program could be improved. The most beneficial improvement would be more advanced type of 3D renderer for visualization. Another optimization could be using of vertex shader for rendering of parallel coordinates and adding of interaction possibility to it (currently it is used only for visualization purpose). Because of memory limitations of GPU, only 4 scale spaces are supported. Implementing some memory management approach would be therefore also a plus.
References[1] Lum, Eric B. and Shearer, James and Ma, Kwan-Liu: Interactive multi-scale exploration for volume classification. Vis. Comput. 2006, (0178-2789)