Keywords

1 Introduction

Visualization of three- or more dimensional data is a major problem of data visualization field. There are two major categories in way to visualization. One is direct volume rendering, and the other is surface reconstruction. In case of three-dimensional space, the geometrical location of values can be directly represented by x, y, z coordination. Using direct volume rendering, each pixel is examined by light transfer function and their colors are calculated without extracting surfaces. However, deciding color of pixel using light transfer function is expensive computational process. In addition, it is hard to observe the inside structure of value distribution of the dataset. Furthermore, every time the view point and angle changes, colors of pixels should be calculated again.

The other way to visualization is that construct surface on the volume and render it using the method to render general three dimensional meshes. An isosurface, also called implicit surface, is one of the way to construct a surface on volumetric data. It is a surface which has constant value (e.g. density, intensity, temperature) in the three-dimensional scalar field. It is called an isocontour or contour lines in two-dimensional space. Given scalar field \( {\text{f }}: {\mathbb{R}}^{d} \to {\mathbb{R}} \) and a constant value \( \upalpha \in {\mathbb{R}} \), the isosurface on the isovalue α is defined by the level set \( \left\{ {\left. {x\,} \right| \,f\left( x \right) =\upalpha} \right\} \). But since it is just a point set, but not a perfect surface and data cannot be continuous in computer science, an isosurface has to be approximated using specific algorithms. Marching cubes algorithm is one of the widely used algorithm to approximate an isosurface on the volume dataset.

Figure 1 is example of each approach described in previous paragraphs. (a) is direct volume rendered image of laser intensity data, and (b) is its isosurface. Each surfaces of same color have same value.

Fig. 1.
figure 1

(a) Image of laser intensity data using direct volume rendering and (b) Its isosurface.

2 Problem Description

2.1 Properties of Volumetric Scattered Data

Scattered data has properties of unorganized samples. Each value is located at sparse and irregular position in the space. There are numerous practical examples of scattered data in computer science (e.g. computational fluid dynamics, terrain modeling, etc.). In tri-variate and scalar dependent value case, scattered data can be represented by \( f\left( {x_{i} , y_{i} , z_{i} } \right) = F_{i} , i = \left( {1, \ldots ,N} \right) \) where \( P_{i} = \left( {x_{i} , y_{i} , z_{i} } \right) \) are the independent variables and \( F_{i} \) is the dependent variable. In this case, the dataset is called volumetric scattered data.

2.2 Isosurface of Volumetric Scattered Data

Major problem of isosurface is that it is vulnerable to noise of data. Volumetric scattered data is discrete, and not a smooth function, therefore it does not guarantee connectivity of its generated surface. It is even not a surface in many case, because the level set of given function and an isovalue is not always a surface. For example, if f is constant function f = α, its level set is all elements of function f’s domain when an isovalue is α, but empty set for all the other cases.

Another problem is that data must be organized in cube domain to extract an isosurface using Marching cubes algorithm that is a general method for extracting an isosurfaces of the three-dimensional data. Therefore, scattered data must be interpolated on all vertices of the cubes.

(a) in Fig. 2 is an example of volumetric scattered data and (b) is its isosurface constructed by using Marching cubes algorithm. Constructed surface consist of a lot of disconnected triangles. It is neither good from visual perspective nor easy to get information of geometrical distribution of the isovalue.

Fig. 2.
figure 2

(a) Volume rendered image of plasma charge density data and (b) Its isosurface.

3 Related Work

3.1 Marching Cubes

Marching cubes, published in the 1987 SIGGRAPH proceedings by Lorensen and Cline, is famous algorithm for extracting an isosurface of the volumetric data. Marching cubes algorithm is a good choice to construct an isosurface of volumetric data of smooth function. This algorithm use the case table of triangle topology. Each voxel of volumetric data generates an triangle set lying with linearly interpolated point of the voxel’s edge using the case table. Each process of generating triangles can be executed independently, so Marching cubes algorithm can be relatively easily accelerated by using parallel computing on multi-core CPU or GPGPU (General purpose graphic processor unit). Figure 3 is the case table of triangle topology, exclusive of symmetric cases.

Fig. 3.
figure 3

15 cases of triangle topology

3.2 Delaunay Triangulation and Voronoi Diagram

Delaunay triangulation is one of the triangulation method that maximize the minimum angle of the generated triangles. A Sliver triangle, which has a long and thin shape, may be inappropriate when used for interpolation or rasterization. In addition, Delaunay triangulation can be extended to three- or higher dimensional triangulation. In three-dimensional case, Delaunay triangulation generates tetrahedrals. Therefore, Delaunay triangulation can be proper method of triangulation when deciding natural neighbors of the interpolation point. In Fig. 4, there is three ways to triangulate given point set \( {\text{P}} = \left\{ {p_{A} , p_{B} , p_{C} ,p_{D} ,p_{E} } \right\} \). It can be verified that all the angle of triangles is minimum by all the circumcircle of triangles does not contain any other points except for three points to consist of the triangle. In Fig. 4, (a) satisfies Delaunay triangulation properties, but the others do not.

Fig. 4.
figure 4

Delaunay triangulation

Voronoi diagram is the subdivision of the space into Voronoi cells. Voronoi cells represent which point is closest to a position in the space. In other words, Voronoi cells of the point \( p_{i} \) is an influence of \( p_{i} \) in the space. Given point set P and its Delaunay triangulation DT(P), Voronoi diagram of P, VD(P), corresponds to the dual graph of the DT(P). Voronoi diagram can be calculated by connecting the center of circumcircle which is generated by Delaunay triangulation. Figure 5 shows a relationship between Delaunay triangulation and Voronoi diagram.

Fig. 5.
figure 5

Relationship between Delaunay triangulation and Voronoi diagram

3.3 Scattered Data Interpolation

Scattered data often approximated to mathematical modeling function to visualization the relationship of each scalar value in the dataset. Scattered data interpolation is the problem that find a function \( F\left( {x,y,z} \right) \) which is its dependent variable is an approximated value of given scattered data \( f\left( {x_{i} , y_{i} , z_{i} } \right) = F_{i} \) for a non-given point. There are many options for interpolation method on scattered data. The simplest way of interpolation is Nearest neighbor interpolation. It does not consider a weight of given values but assign same value with its nearest point. This method closely connected to Voronoi diagram. All approximated points in a Voronoi cell has an identical value with the seed point of the cell in Nearest neighbor interpolation.

Another way of interpolation is a weighted average interpolation. A weight can be decided by various terms (e.g. distance based weight). The Shepard’s method is one of the basic weighted average interpolation method. It uses an inverse distanced weight for approximation. It can be write in following form where \( N \) is the number of points and \( p_{i} , \left( {i = 1, \ldots ,N} \right) \) is given point of original function.

$$ F\left( {\text{p}} \right) = \frac{{\sum\nolimits_{i = 1}^{N} {\frac{{F_{i} }}{{\left\| {p - p_{i} } \right\|^{2} }}} }}{{\sum\nolimits_{i = 1}^{N} {\frac{1}{{\left\| {p - p_{i} } \right\|^{2} }}} }} $$

Considering all the points in the given point set is inefficient for computation. So, many weighted average interpolation methods consider only a neighbor of an interpolated point. Neighbors can be chosen by whether \( p_{i} \) is within a certain distance from an interpolation point. Despite its simplicity, a distance based neighbor has some problems. If points in the data set are not uniformly distributed, distance based method may not work fine. In addition, it is hard to obtain continuous surface even if a data set is uniformly distributed.

4 Voronoi Natural Neighbor Interpolation

Voronoi natural neighbor interpolation offers a good interpolation result with acceptable computational resource. This method resolve two major problems of traditional weighted average interpolation methods; selection of neighbors, and continuousness of surface. It choose neighbor points in which the adjacent Voronoi cells. Given point set P, its Voronoi diagram VD(P) and interpolation point x, insertion of x creates new Voronoi diagram VD(P∩{x}). Created Voronoi cell \( {\mathcal{V}}_{x} \) alters the original Voronoi cells \( {\mathcal{V}}_{{p_{i} }} \) which is adjacent to \( {\mathcal{V}}_{x} \). In Natural neighbor coordinates, new point x represented by weighted summation of its neighbors. A weight can be written following form.

$$ w_{i} = \frac{{Area\left( {{\mathcal{V}}_{{p_{i} }} \cap {\mathcal{V}}_{x} } \right)}}{{Area\left( {{\mathcal{V}}_{x} } \right)}} $$

Where \( {\text{A}}rea\left( {{\mathcal{V}}_{{p_{i} }} } \right) \) represents the area of the Voronoi cell \( {\mathcal{V}}_{{p_{i} }} \). The term \( {\mathcal{V}}_{{p_{i} }} \cap {\mathcal{V}}_{x} \) is a stolen area caused by insertion of x. Voronoi natural neighbor interpolation use this weight \( w_{i} \) for weighted interpolation. Interpolated function \( F\left( p \right) \) can be represented by this form where N is the number of neighbors. Interpolated function \( F\left( p \right) \) is continuous everywhere except original point.

$$ F\left( {\text{p}} \right) = \mathop \sum \limits_{i = 1}^{N} w_{i} F_{i} $$

(a) in Fig. 6 is the original Voronoi diagram, (b) is newly created Voronoi diagram by insertion of x, and (c) is an overlapped image of previous two images showing weight \( w_{i} \), which is stolen area of the original Voronoi cell.

Fig. 6.
figure 6

Voronoi diagram and Natural neighbors interpolation.

5 Results

Experiment was perform by comparing isocontours of three different datasets. First is the original dataset of laser intensity data. Second is the dataset smoothed using Gaussian filter. Last one is the dataset which is down-sampled from original image and approximated to original resolution by using Voronoi natural neighbor interpolation.

The isocontour of original dataset shows many islands, so it is relatively difficult to know intuitively geometrical distribution of isovalues. The second one, Gaussian filtered dataset, shows less islands than previous one, but the range of the value is significantly changed when averaging the values out. In fact, the original dataset’s range of value is 4.5e−10 to 6.5501e+03, but the second one is 52.9433 to 2.3670e+03. On the other hand, the isocontour of interpolated dataset shows less islands and modulation does not occur during interpolation process except during down-sampling process.

Figures 7 and 8 are a visualized image of the original dataset and its isocontour respectively. Figures 9 and 10 are images of the Gaussian filtered dataset and Figs. 11 and 12 are images of the interpolated dataset’s respectively.

Fig. 7.
figure 7

(a) Original dataset and (b) Its histogram.

Fig. 8.
figure 8

Isocontour of the original dataset

Fig. 9.
figure 9

(a) Gaussian filtered dataset and (b) Its histogram.

Fig. 10.
figure 10

Isocontour of the smoothed Gaussian filtered dataset.

Fig. 11.
figure 11

(a) Interpolated down-sampled dataset and (b) Its histogram.

Fig. 12.
figure 12

Isocontour of the interpolated dataset.

6 Conclusions

Scattered data is everywhere in the computer science field. Scattered data is hard to visualize or be analyzed in itself. So reconstruct a surface of scattered data is important issue in computational geometry. This paper showed how to get approximate isosurface or isocontour using interpolation, and described advantages of Voronoi natural neighbor interpolation against other interpolation method. In addition, It showed that problem of using smoothing filter to get less noise isosurface and showed that proposed method solves this problem.

In this paper, uniform down-sampling was used, but it may be valuable to compare the result using other method. In further research, I will compare the result using feature based down-sampling method (like local maximum and curvature) and find proper way to down-sample the original data.