Swiss Federal Institute of Technology Zurich Politecnico federale di Zurigo Ecole polytechnique federale de Zurich ? ? Zurich ? Technische Hochschule Eidgenossische ? Institute of Scientific Computing Computer Graphics Research Group Avoiding Errors In Progressive Tetrahedralizations Oliver . G. Staadt , Markus . H. Gross Computer Graphics Research Group Institute of Scientific Computing Computer Science Department ETH Z?rich , Switzerland E-mail : -LCB- staadt , markus.gross -RCB- @inf . ethz.ch WWW : http://www.inf.ethz.ch/department/IS/cg Technical Report No. 287 , January 1998 Avoiding Errors In Progressive Tetrahedralizations Oliver G. Staadt , Markus H. Gross ETH Zurich ABSTRACT This paper describes some fundamental issues for robust imple - mentations of progressively refined tetrahedralizations generated through sequences of edge collapses . We address the definition of appropriate cost functions and explain on various tests which are necessary to preserve the consistency of the mesh when collapsing edges . Although being considered a special case of progressive simplicial complexes -LSB- 4 -RSB- , the results of our method are of high practical importance and can be used in many different applica - tions , such as finite element meshing , scattered data interpolation or rendering of irregular volume data . CR Categories : I. 3.5 -LSB- Computer Graphics -RSB- : Computational Geo - metry and Object Modeling ? surfaces and object representations . 1 INTRODUCTION Progressive meshes -LSB- 3 -RSB- and its generalizations to higher dimen - sions -LSB- 4 -RSB- have proofed to be an extremely powerful notion for the efficient representation of triangulated geometric objects at differ - ent levels of detail . Although a general formulation for arbitrary triangulations has already been given in -LSB- 4 -RSB- , the special case of progressive tetrahedralizations -LRB- PT -RRB- is of enormous practical importance , since it can be used as a sophisticated representation for a large variety of computations . Finite Element discretizations , from where our contribution was motivated , are one example . Here , sophisticated computational methods try to find an optimal balance between refinements of the mesh and of the polynomial degree of the basis functions . Other important applications of pro- gressive tetrahedralizations comprise interpolation and rendering of scattered volume data , where successively refinable methods would definitely improve the performance of existing approaches . A general overview of various mesh simplification methods , including those based on edge collapses , can be found in -LSB- 2 -RSB- . However , regardless of the brilliance and simplicity of the idea of edge collapsing , a brute force implementation of the method may rapidly destroy the consistency of the mesh . Various artifacts can be introduced , such as flipped , intersected and degenerated tet - rahedra , which in turn may kill any Finite Element computation . An example is given in Fig. 1 . Here two boundary tetrahedra inter - sect due to an edge collapse in a locally concave mesh region . In this paper we elaborate on some pitfalls and fallacies people might get caught in when trying to implement the method of edge collapsing for tetrahedral meshes . Specifically , we address the issue of defining appropriate cost functions . Unlike the elegant geometric approach presented in -LSB- 3 -RSB- , we must account for volume and application specific properties , such as volume preservation , gradient estimation of the underlying data or aspect ratio of the simplex . In addition , we devised a sequence of tests to guarantee a robust and consistent progressive tetrahedralization . Some results obtained on CFD data sets illustrate the performance of the PT1 . 2 PROGRESSIVE TETRAHEDRALIZATI - ONS For reasons of readability , we recapitulate some basic definitions for progressive meshes and adapt them to progressive tetrahedrali - zations -LRB- PT -RRB- . General introductions are provided in -LSB- 3 -RSB- or -LSB- 4 -RSB- . Background In PT representations , a tetrahedral mesh with scalar attributes assigned to each vertex is defined as -LRB- 1 -RRB- where is some coarse base mesh and are vertex split operations to reconstruct the original mesh from : . -LRB- 2 -RRB- Conversely , is derived from through a series of edge collapse operations which are inverse to : . -LRB- 3 -RRB- Each replaces an edge with vertices and by a new vertex . As opposed to some other methods we preserve the topological type of the mesh , that is , all instances of are homeo - morphic . Specifically , we prohibit degenerations of tetrahedra into lower dimensional simplices . The set of tetrahedra sharing will be called . Thus , an edge split adds the tetrahedra in to the list of active elements . Conversely , the set of non - vanishing tetrahedra affected by the associated edge collapse is called . Fig. 2 depicts an edge collapse operation in a tetrahedral mesh . All tetrahedra sharing vanish , whereas all tet - rahedra sharing only one of the vertices of the edge change in shape . In order to compute a sequence of robust , non-degenerate and consistent meshes , the following aspects have to be considered : ? Cost functions which determine the order of ecol opera - tions depending on desired mesh optimization criteria . ? Sharp and feature edges which should be preserved can be checked during preprocessing . ? Intersections and inversions of tetrahedra inside and out - side of , such as the one in Fig . 1 , have to be processed at run time . The remainder of this paper elaborates on the details of these issues . Cost Functions Various elegant algorithms -LSB- 1 -RSB- -LSB- 3 -RSB- based on the ecol/vsplit paradigm used cost functions optimized for triangu - lar surfaces , often accounting for distance measures , triangle shape 1 The method is currently implemented as a set of AVS/Express modules and will be made available shortly . Figure 1 : Intersection of two tetrahedra : a -RRB- The edges of two non-adjacent tetrahedra bounding the volume intersect while collapsing an edge in a locally concave mesh region . b -RRB- Close-up of the intersection . collapsing edge a -RRB- b -RRB- si vi M0 vsplit vsplit1 ? vsplitn 2 ? vsplit n 1 ? , , , , , -LRB- -RRB- M vspliti M Mn = M0 M0 vsplit M 1 vsplit1 ? vsplitn 1 ? M n M0 M ecoli vspliti M n ecol n 1 ? M n 1 ? ecoln 2 ? ? ecol0 M ecol i ei v a vb va M ei ic ellsi -LCB- -RCB- i ce l l si -LCB- -RCB- ncellsi -LCB- -RCB- ei ic ellsi -LCB- -RCB- nce l l si -LCB- -RCB- ? -LCB- -RCB- and others . In tetrahedral meshes , however , we have to redefine the terms of the cost function considering other features , like volume preservation or gradients . Although many different measures are conveivable to control the simplification process , the following ones yield a good balance between required degrees of freedom and the pain of parameter optimization . Thus , in our setting , for each edge , the associ - ated edge collapse operation is assigned the following cost : . -LRB- 4 -RRB- The first term is defined as -LRB- 5 -RRB- and forms a simplified measure for the difference of underlying scalar volume function along the edge . Hence , edges with con - siderably differing scalar attributes are assigned high costs . When collapsing edges and removing tetrahedra from the mesh , the overall volume tends to decrease , that is the mesh shrinks down . Therefore , we introduce a second term penalizing volume changes : . -LRB- 6 -RRB- denote all tetrahedra in the set of neighborhood cells of and introduced cells , respectively . stands for the volume of and is the tetrahedron after the collapse . Note that only simplices in can contribute to volume changes . Especially in FEM applications , it is often required that tetra - hedra sustain equilateral shape . can be employed in order to balance the edge length of tetrahedra : -LRB- 7 -RRB- with edge length and average edge length . Each term can be weighted individually by a coefficient to allow adoption to specific data sets and applications . Note that the initial mesh will usually be generated from some triangulation scheme . Depending on the application context and the desired mesh features it can be advantageous to include some into the cost function thereby enforcing short edges to be collapsed earlier . This term , however , is omitted in subsequent examples . Static Tests Unfortunately , brute force selection of edges according to the cost function from above can introduce mesh inconsistencies , like degeneration , folding , intersection , or loss of individual features . In order to avoid these types of artifacts , some static tests can be carried out prior to building the edge heap . Before we introduce the test criteria we have to define some properties of edges and ver - tices : ? sharp edge : an edge is called sharp if it lies on the boundary of the mesh . ? sharp vertex : a vertex is called sharp if at least one edge incident to is sharp . ? sharp face : a triangular cell face is called sharp if all its edges are sharp . ? sharp cell : a tetrahedral cell is sharp if at least one of its faces is sharp . Sharp edges can be detected efficiently by analyzing all verti - ces assuming appropriate data structures to repre - sent the mesh . In a preprocessing step we label all sharp vertices and edges , respectively . Table 1 lists the 5 different cases for com - binations of sharp edges and vertices . Only cases 1 and 5 pass the consistency test . Dynamic Tests Unfortunately , not all inconsistencies can be fixed with the static tests from above . Some severe problems arise dynamically while performing individual ecol operations and fur - ther tests are required on the fly . Circumvention of folding or self-intersection of tetrahedra can easily be implemented by analyzing the volume of all before and after the collapse . Recall that the vol - ume of a tetrahedron is defined by the parallelepipedial product of a : cases 2 and 3 induce ? dents ? on the boundary surface which may not be desired -LRB- similar to -RRB- . b : case 4 introduces degenerated cells , since is not deleted . c : a sharp edge always implies that it?s vertices are sharp . Sim - plifications of the boundary surfaces are allowed . Figure 2 : Edge collapse in a tetrahedral mesh : a -RRB- Mesh before collapsing edge . b -RRB- Configuration after collapse with resulting vertex . -LRB- Tetrahedra are shrinked to emphasize the underlying 3-dimensional structure . -RRB- v1 v2 v4 v3 va v5 v4 v 3 v1 v 2 v5 v a vb a -RRB- b -RRB- n cel lsi -LCB- -RCB- ic e ll s i -LCB- -RCB- va vb , -LRB- -RRB- va ei v a v b , -LRB- -RRB- = ecoli a b , -LRB- -RRB- : M i Mi 1 + ? ED ei -LRB- -RRB- E grad D e i -LRB- -RRB- E volume D ei -LRB- -RRB- DE equi ei -LRB- -RRB- + + = DEgrad DE grad e i -LRB- -RRB- wgrad sa sb ?? = e i DE vol DEvol e i -LRB- -RRB- wvol vol T j -LRB- -RRB- vol T j -LRB- -RRB- ? -LRB- -RRB- vol T j -LRB- -RRB- T j ice ll s j -LCB- -RCB- ? ? + T j n c el lsi -LCB- -RCB- ? ? ? ? ? ? ? = T jn ce l l s i -LCB- -RCB- e i ic ellsi -LCB- -RCB- vol T j -LRB- -RRB- T j T j i ce l l s i -LCB- -RCB- nce l l si -LCB- -RCB- ? DE equi DE equi ei -LRB- -RRB- wequi l a b , m j ? -LRB- -RRB- 2 a b , -LCB- -RCB- T j ? ? la b , m j ? -LRB- -RRB- 2 a b , -LCB- -RCB- T j ? ? ? ? ? ? ? T j nc e ll s i ?? ? = l a b , va v b ? = m j 1 T j ? la b , a b , -LCB- -RCB- T j ? ? ? = w Table 1 : The 5 possible cases for combinations of sharp edges and sharp vertices . The examples refer to Fig. 3 . CASE PERMISSIBLE EXAMPLE 1 yes 2 sharp optionala 3 sharp optionala 4 sharp sharp nob 5 sharp sharp sharp yesc Figure 3 : Naming conventions used for static consistency tests . For simplicity , the examples are depicted in 2D . M n DE edgelen e i -LRB- -RRB- wedgelen v a vb ?? = ei vi vi f i T i v j i ce llsi -LCB- -RCB- ? e va v b DE vol v9 v0 v13 v12 v15 v 4 v 3 v2 v1 v14 sharp edge regular edge sharp vertex regular vertex v 9 v 10 v11 v16 v 5 v6 v 7 v 8 v17 T i ncell si -LCB- -RCB- ? its 3 edges : . -LRB- 8 -RRB- If the volume of one of the neighboring tetrahedra becomes negative , tetrahedral folding occurs . In this case the edge fails the consistency test . This test also avoids degenerate cells by setting a lower volume threshold to be retained after the collapse . We start from the following observation : edge collapses can cause global intersections of tetrahedra , a simple example of which is shown in Fig. 1 . This requires additional testing . If the set contains no sharp edge , it?s boundary forms a convex polytope entirely wrapping the edge . A collapse of the edge , however , does not affect the boundary of the polytope , whose disjoint triangulation is given by the tetrahedra . Thus , intersections can only occur with sharp cells and we can restrict the intersection tests to the mesh bound - ary . Fig. 4a depicts the top view of a tetrahedral mesh where is a sharp cell that is close to , but not intersecting the boundary of the mesh . Let be the edge to be collapsed next and let vertex be closer to the viewpoint than . The situation after the collapse where is intersecting two faces of is depicted in Fig . 4b . In essence , we have to perform triangle?triangle intersection tests -LSB- 5 -RSB- in case of sharp edges or vertices which can be carried out as follows : First , we define the set of triangles containing all sharp faces of tetrahedra . These are the faces which can change after since they all share the new vertex . Thus they are our prime candidates for intersection with other sharp faces . In order to avoid testing these faces against all other sharp tet - rahedra , we propose the following iterative method : The algorithm starts from an initial set containing the subset of all sharp tetrahedra in the direct neighborhood of . We take the first element of and test for intersection with all faces in . If the test fails and no intersection occurs , we label the tetrahedron as visited and proceed to the next element of . Otherwise we can abort the test and reverse the current operation . The restriction to the sharp faces of each tetrahe - dron simplifies the intersection test , since many cell have only one sharp face -LRB- see Fig. 4 -RRB- . After probing all cells , we replace all vis - ited tetrahedra in with their non-visited neighboring sharp cells and thereby traverse the mesh . The are shown in Fig. 4c for different iteration steps . The following pseudo code summarizes the principle steps of the intersection test : intersection_test -LCB- / / Tsharp -LSB- i , m -RSB- : sharp cells at iteration m / / f -LSB- k -RSB- : sharp faces in / / calculate_intersections : triangle-triangle / / intersection test / / M : maximum iteration level m = 0 ; while -LRB- Tsharp -LSB- i , m -RSB- not empty & & m < M -RRB- -LCB- forall f -LSB- i -RSB- in Tsharp -LSB- i , m -RSB- forall f -LSB- k -RSB- calculate_intersections -LRB- f -LSB- i -RSB- , f -LSB- k -RSB- -RRB- ; update Tsharp -LSB- i , m -RSB- ; m + + ; -RCB- -RCB- Note that the test asymptotically traverses all sharp faces of the mesh and consumes time proportional , where stands for the number of elements in and for the overall number of sharp faces in the data set . As we will demonstrate in Section 3 , one can restrict the iteration to an upper bound in practice . Edge Collapse After calculating the cost of each edge and determining the static conditions of the corresponding edge col - lapse operation , we build a heap with all remaining edges sorted according to their associated costs . In order to carry out the edge collapse , we pop the topmost edge from the heap , check for intersections , construct a record for reconstruction , and update all edges on the heap which are in . This process is repeated until the heap is empty or the desired number of col - lapses has been reached . Although we implemented various schemes for the optimal positioning of , such as stochastic opti - mization , we found that the halfway between and is a good choice . 3 RESULTS For the following investigations , an irregular mesh of a turbine blade was selected . The original data set consists of 576,576 tetra - hedra with scalar node data representing pressure between the blades . Fig. 5 shows results with various levels of reconstruction , different settings of the cost functions , and extracted isosurfaces , both for the original mesh and for a selected subset with only one blade . Table 2 lists the performance statistics and parameter set - tings used to generate the example meshes . denotes the origi - nal number of tetrahedra and is the number of tetrahedra of the reconstructed mesh . , , and indicate the indi - vidual cost function terms used for the example . Time shows the computation time for a full mesh collapse , i the number of vsplits , and Hits the number of dynamically deleted intersections -LRB- -RRB- . The performance of our algorithms was measured on an Indigo2 R10000@195MHz . The reconstruction time for the exam - ples was between 0.1 s and 0.8 s , depending on the number of splits . Fig. 5a shows isosurfaces of the blades , extracted from at isovalue 5.0 . A slice through the mesh is displayed in order to depict the irregularity of the mesh reconstruction . Note especially the high quality of the isosurfaces which confirms the effectiveness of . A subset of the mesh with one blade is shown in Fig. 5b-c for two different resolutions . In order to bal - ance the individual terms of , the weights were set to , , and , respectively . Figure 4 : Tetrahedron intersects two faces of after collapsing edge into vertex . a -RRB- before collapse . b -RRB- after col - lapse . c -RRB- Traversal of the mesh for iteration steps 1 ? 4 . ei e j and ek , 1 6 -- ei e j ek , , -LSB- -RSB- 1 6 -- ei e j ? e k , ? ? = i ce l l s i -LCB- -RCB- nce l l s i -LCB- -RCB- ? -LCB- -RCB- T j ncell si -LCB- -RCB- ? T j e i vb va T j ncellsi -LCB- -RCB- va vb ice ll s i e T j n c el lsi a -RRB- va face intersection b -RRB- n c el lsi Tisharp 1 , -LCB- -RCB- v a Tisharp 2 , -LCB- -RCB- Tisharp 3 , -LCB- -RCB- Tisharp 4 , -LCB- -RCB- c -RRB- T j f k -LCB- -RCB- e i v a T isharp m , -LCB- -RCB- f k -LCB- -RCB- T j ncellsi -LCB- -RCB- ? ecol i v a T isharp -LCB- -RCB- ncellsi T isharp -LCB- -RCB- f k T isharp -LCB- -RCB- ecoli T isharp -LCB- -RCB- T isharp m , -LCB- -RCB- T i nc e ll s i O F B ? -LRB- -RRB- F f k -LCB- -RCB- B ecoli vspliti nce l l si -LCB- -RCB- va va vb Mn Mi DE grad DE vol DEequi m 2 = M 15000 DE grad DE wgrad 1 = w vol 500 = wequi 200 = In Fig. 5d , the mesh is cut to render its internal structure . In order to emphasize the influence of individual cost function terms we computed Fig. 5e-g . We observe that each of the energy terms stands for a specific feature . , for instance in Fig. 5e recon - structs the blade region very well , but violates volume preservation and produces poorly shaped simplices . As expected , sus - tains the volume , whereas preserves the equilateral shape of the tetrahedra . Usually , it can not be guaranteed that all intersections are detected with . For the above example the total number of intersection hits with is 6,116 , which means that 98.8 % of the intersections have already been detected at iteration level 2 . 4 CONCLUSIONS We have presented a technique for generating progressive tetrahe - dralizations , especially emphasizing on problems such as intersec - tions or degenerations . The cost functions that we have proposed are well suited for a wide range of volume data sets in different applications areas . Although tetrahedral mesh decimation is a complex task , we have implemented a fast and efficient method that avoids most the pitfalls of tetrahedral meshing . 5 REFERENCES -LSB- 1 -RSB- M. Garland and P. S. Heckbert . ? Surface simplification using quadric error metrics . ? In Computer Graphics -LRB- SIGGRAPH ? 97 Proceedings -RRB- , pages 209 ? 216 , Aug. 1997 . -LSB- 2 -RSB- P. Heckbert , J. Rossignac , H. Hoppe , W. Schroeder , M. Soucy , and A. Varshney . ? Course no. 25 : Multiresolution surface modeling . ? In Course Notes for SIGGRAPH ? 97 . 1997 . -LSB- 3 -RSB- H. Hoppe . ? Progressive meshes . ? In H. Rushmeier , editor , Computer Graphics -LRB- SIGGRAPH ? 96 Proceedings -RRB- , pages 99 ? 108 , Aug. 1996 . -LSB- 4 -RSB- J. Popovic and H. Hoppe . ? Progressive simplicial complexes . ? In Computer Graphics -LRB- SIGGRAPH ? 97 Proceedings -RRB- , pages 217 ? 224 , Aug. . 1997 . -LSB- 5 -RSB- F. P. Preparata and M. I. Shamos . Computational Geometry . Springer , New York , 1985 . Figure 5 : PT representations of an irregular turbine blade mesh . a -RRB- Extraction of isosurfaces of the turbine blades using marching tetrahedra . b -RRB- - c -RRB- Part of the data set at different reconstruction levels with shrinked tetrahedra . d -RRB- Part of the mesh is cut to render its internal features . e -RRB- PT with . f -RRB- . g -RRB- only . Parameter settings and performance statistics are listed in Table 2 . -LRB- Data set courtesy of AVS Inc. -RRB- a -RRB- b -RRB- c -RRB- d -RRB- e -RRB- f -RRB- g -RRB- DE grad DE vol DEequi Table 2 : Parameter settings and performance statistics for the results shown in Fig. 5 . Fig . Mn Mi Egrad Evol Eequi Time i Hits a -RRB- 576,576 117,139 3 3 3 4h57 ? 15,000 40,415 b -RRB- 78,624 8,317 3 3 3 34 ? 23 1,000 6,040 c -RRB- 78,624 13,327 3 3 3 34 ? 23 ?? 2,000 6,040 d -RRB- 78,624 13,327 3 3 3 34 ? 23 ?? 2.000 6,040 e -RRB- 78,624 10,554 3 5 5 19 ? 26 ?? 1,000 2,386 f -RRB- 78,624 7,440 5 3 5 41 ? 58 ?? 500 7,919 g -RRB- 78,624 8,169 5 5 3 39 ? 35 ?? 1,000 4,798 DEgrad DE vol DE equi m 2 = m ? fi

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O


. . UNIT?E DE RECHERCHE INRIA-SOPHIA ANTIPOLIS Institut National de Recherche en Informatique et en Automatique Sophia Antipolis B.P. 109 06561 Valbonne Cedex France T?el. : 93 65 77 77 Rapports de Recherche No1697 Programme 4 Robotique , Image et Vision THREE DIMENSIONAL RECONSTRUCTION OF COMPLEX SHAPES BASED ON THE DELAUNAY TRIANGULATION Jean-Daniel BOISSONNAT Bernhard GEIGER April 1992 Three Dimensional Reconstruction Of Complex Shapes Based On The Delaunay Triangulation La Triangulation de Delaunay appliqu?ee ? a la Reconstruction 3D d'Objets Complexes Jean-Daniel Boissonnaty Bernhard Geigery April , 17 1992 Abstract We propose a solution to the problem of 3D reconstruction from cross sections , based on the Delaunay triangulation of object contours . Its properties | especially the close relationship to the medial axis | enable us to do a compact tetrahedrisation resulting in a nearest-neighbor connection . The reconstruction of complex shapes is improved by adding vertices on and inside contours . R?esum?e Nous pr?esentons ici une solution au probl?eme de la reconstruction tridimensionnelle d'objets ? a partir de coupes parall?eles , qui utilise la triangulation de Delaunay des contours des objets . Nous construisons une t?etra?edrisation de l'objet reliant les contours ? a leurs plus proches voisins , gr ^ ace aux propri?et?es de la triangulation de Delaunay , en particulier sa relation ? etroite avec l'axe m?edian . Dans le cas d'objets complexes -LRB- branches , trous -RRB- , nous am?eliorons la reconstruction en ajoutant des sommets sur et ? a l'int ? erieur des contours . yInstitut National de Recherche en Informatique et Automatique BP 93 | 06902 Sophia Antipolis Cedex -LRB- France -RRB- Phone : +33 93 65 77 60 | Telex : 970 050F | Fax : +33 93 65 76 43 E-mail : boissonn@sophia.inria.fr geiger@sophia.inria.fr Contents 1 Introduction 2 2 Previous Solutions 3 2.1 Surface reconstruction : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.2 Voxel reconstruction : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 2.3 The reconstruction problem : : : : : : : : : : : : : : : : : : : : : : : : : 3 3 Definitions 4 3.1 Voronoi Diagram - Delaunay Triangulation : : : : : : : : : : : : : : : : 4 3.2 Contour containment : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 3.3 Internal and external Voronoi skeleton : : : : : : : : : : : : : : : : : : : 6 3.4 Increasing the quality of shape representation : : : : : : : : : : : : : : : 8 4 Volume reconstruction 10 4.1 The subdivision of the plane : : : : : : : : : : : : : : : : : : : : : : : : : 10 4.2 2D to 3D mapping : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 4.3 Elimination step : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 11 4.4 Introducing internal vertices : : : : : : : : : : : : : : : : : : : : : : : : : 13 5 Experimental Results 16 6 Conclusion 16 1 Introduction An important problem in medical imaging is the creation of three dimensional models from a set of tomographic cross sections . Such reconstructions of human organs are already used for ffl surgery planning ffl prothesis milling ffl radiation therapy planning ffl volumetric measurements According to the high interest , there have been a great number of approaches , which may roughly be classified into two groups : surface reconstruction and volume reconstruction . The first group contains the classical solutions of -LSB- Kep75 -RSB- and -LSB- FKU77 -RSB- . In the second we find the today 's dominant voxel technique . Another volume approach is the Delaunay reconstruction proposed in -LSB- Boi88 -RSB- . In this article , we consider the Delaunay reconstruction from a different point of view that allows us to compare its heuristic to that of the voxel technique . We show its close relationship to the medial axis and finally add some new extensions . In the following section , we will give a brief description of the surface - and volumeapproach and discuss some theoretical questions . In section 3 we explain the principal terms Voronoi diagram and Delaunay triangulation and give a range of successive refinements , from Voronoi diagram of point sites to the medial axis . Finally , we describe the Delaunay reconstruction in section 4 . 2 Previous Solutions 2.1 Surface reconstruction Historically , surface reconstruction has been the first approach . Running along the contours , surface triangles are constructed between adjacent planes . Various conditions may be imposed : maximize the volume , minimize the surface , minimize the edge length or angles -LRB- See Keppel -LSB- Kep75 -RSB- and Fuchs et al. -LSB- FKU77 -RSB- -RRB- . These solutions were limited to one single contour on each cross section . In the suite , there were a number of methods trying to solve the branching problem when the number of contours varies from one plane to another -LRB- -LSB- CS78 -RSB- -LSB- Sha81 -RSB- -LSB- MSS91 -RSB- -LSB- Toe89 -RSB- -RRB- . 2.2 Voxel reconstruction A voxel is the spatial equivalent to a pixel . Since scanner data comes on a regular grid , the pixels , it is quite natural to extend them to a volume element -LRB- Barillot -LSB- BGLS85 -RSB- -RRB- . However , to avoid excessive radiation , cross section distances often are significantly greater than the 2D resolution . This makes interpolation necessary in order to avoid jaggies . To visualize such a heap of cubes , it is necessary to fit a surface on it -LRB- Marching Cube -LSB- LC87 -RSB- -RRB- or to deduce surface normals with other methods -LSB- HB86 -RSB- , -LSB- Lev88 -RSB- -RRB- . The main disadvantage however is the huge amount of data , which has to be processed . Still , real time motion requires special hardware . For an exhaustive survey on reconstruction methods and systems see also -LSB- SFF91 -RSB- . 2.3 The reconstruction problem A 3D object is intersected by a number of parallel planes . Since concave objects are admitted , we get one or several regions in each plane . The contours of those regions may be approximated by polygons , possibly some of them lying inside others . We now want to link these regions -LRB- or to connect the contours -RRB- in a way to obtain the \ best '' approximation to our original object . One condition the reconstructed object has to satisfy is : If we cut it along the original planes , we must get the actual regions . If we consider figure 1 , we have to admit that both solutions b and c satisfy the condition specified above . Selecting a particular solution is a heuristic decision , if no a priori information is present . a b c p2 p1 Figure 1 : A set of 6 contours , pairwise superposed in two horizontal , parallel planes p1 and p2 . -LRB- b -RRB- and -LRB- c -RRB- show two possible connections All reconstruction methods make such heuristic assumptions , except the interactive ones . In voxel reconstruction , the heuristic consists in extending all object pixel to a parallelepiped of height equal to the slice distance , thus favorizing \ vertical '' connections . It seems to be quite a simple , natural assumption , and at an adequate relation of object size and slice distance , the results are fully satisfying . In our approach , we subdivide the planar regions into triangles , and extend these triangles to tetrahedra by linking them to the contours in adjacent cross sections . Our attempt hereby is to achieve an almost vertical , `` voxel-like '' connection -LRB- heuristic -RRB- , but in the same time to reduce the data , avoid anti-alias or interpolation steps and get directly a polyhedral representation which is suitable for rendering on standard graphics workstations . 3 Definitions 3.1 Voronoi Diagram - Delaunay Triangulation Given a set S of N sites S = fpi 2 E2ji = -LRB- 1 : : N -RRB- g such that no four sites lie on a common circle . We define V -LRB- i -RRB- as the set of points closer to site pi than to any other site in S. V -LRB- i -RRB- is called the Voronoi cell associated with pi -LRB- See fig. 2 -RRB- . The union over all V -LRB- i -RRB- , V -LRB- S -RRB- , is called the Voronoi diagram of S . It can be considered as a subdivision of the plane in convex polygonal regions | the Voronoi cells . The boundaries of the regions are referred to as Voronoi edges , the joints of -LRB- always -RRB- three Voronoi edges are called Voronoi vertices . Each Voronoi edge is associated with two adjacent Voronoi cells , and is a part of the perpendicular bisector of their sites , thus denoting the locus of equal distance . A Voronoi vertex is equidistant to three sites . If we draw a line segment between each pair of sites whose Voronoi cells share an edge , we obtain a triangulation of the points in S called the Delaunay triangulation -LRB- See fig. 3 -RRB- . The Delaunay triangulation is the straight-line-dual of the Voronoi diagram : ffl each Voronoi vertex is the circumcenter of a Delaunay triangle . Figure 2 : A Voronoi cell -LRB- left -RRB- and the Voronoi diagram -LRB- right -RRB- of a number of sites Figure 3 : A Voronoi diagram -LRB- dashed -RRB- and its straight-line-dual , the Delaunay triangulation . ffl each Voronoi edge corresponds to an edge in the Delaunay triangulation , despite the fact that they may not even intersect . This geometric difference between Voronoi diagram and Delaunay triangulation becomes important in the reconstruction issue . Some further properties of the Delaunay triangulation are : ffl The border of the Delaunay triangulation is the convex hull of its sites . ffl The Delaunay triangulation maximizes the minimum angle over all triangulations . ffl The number of triangles in the Delaunay triangulation is at most 2N ? 5 , where N is the number of vertices in the triangulation . ffl A Delaunay triangle does not contain any other site in its circumcircle -LRB- empty circle property -RRB- . This implies that any triangulation without obtuse angles must be Delaunay . The definition of Voronoi diagrams and Delaunay triangulation in 3D space is straightforward -LRB- Refer to -LSB- PS85 -RSB- -RRB- . Instead of triangles we will get tetrahedra , besides Voronoi edges there will also be Voronoi faces , and the empty circle property translates in empty sphere property . 3.2 Contour containment In our application , we have to deal with contour lines , approximated by simple closed polygons . Just triangulating the polygons vertices may result in a triangulation where contour segments are not guaranteed to be edges of the triangulation . Since our issue is to get a 3D polyhedron whose intersection with the given cross sections yields in the original contours , our triangulation has to satisfy the following requirement : All contour segments have to appear as Delaunay edges in the Delaunay triangulation -LRB- contour containment condition -RRB- . An easy solution is to insert new points on the concerned contour edges , so that the contour shape is not changed -LRB- cf. figure 4 -RRB- . 3.3 Internal and external Voronoi skeleton Once the containment condition is satisfied , we can divide the Delaunay triangles in two groups : internal triangles lying inside the contours and external triangles lying outside the contours . We call internal Voronoi skeleton the edges of V -LRB- S -RRB- which are dual to an internal Delaunay edge -LRB- that is an edge shared by two adjacent internal Delaunay triangles -RRB- . a b c e f g f g g f Figure 4 : -LRB- a -RRB- A contour . It is evident , that triangle e , f , g can not be part of a Delaunay triangulation , since its circumcircle would contain another site . -LRB- b -RRB- shows the Delaunay triangulation of the contour points . Contour segments which are incident with Delaunay edges are drawn bold . Contour edge f , g is contained after insertion of a vertex on e , f -LRB- c -RRB- . EVS IVS Figure 5 : Internal -LRB- IVS -RRB- and external -LRB- EVS -RRB- Voronoi skeleton of three contours Similarly we define external Voronoi skeleton the edges of V -LRB- S -RRB- which are dual to an edge shared by two external Delaunay triangles -LRB- See fig. 5 -RRB- . The internal Voronoi skeleton represents in some sense the contour polygon , but as we mentioned above , the Delaunay edges and the Voronoi edges of a point set may be quite different . The internal Voronoi skeleton is not guaranteed to lie inside the polygon boundaries . Even worse , polygons with same shape but different distribution of vertices may have totally different Voronoi skeletons -LRB- See fig. 6 -RRB- . Thus the quality of shape representation is not very high at this stage . 3.4 Increasing the quality of shape representation To guarantee that the internal Voronoi skeleton lies inside its contour polygon , we add new vertices on contour segments involved in obtuse Delaunay triangles -LRB- See fig. 6 -RRB- : For each contour segment , we consider the opposite angle of the triangle it belongs to . If it is greater than 90 degrees , its corresponding Voronoi vertex lies outside the triangle . In this case we add a new point at the normal projection of the opposite vertex onto the contour segment . This will divide the obtuse triangles in two right-angled triangles -LRB- See fig. 6 -RRB- . It is to point out that this procedure does n't eliminate all obtuse angles in the Delaunay triangulation , only obtuse angles opposed to contour segments are detected . But it is sufficient to guarantee that the internal Voronoi skeleton stays inside its contour . IVS EVS Figure 6 : Two vertices have been inserted in the right image to avoid obtuse angles In general , increasing the number of polygon vertices makes the Voronoi skeleton tending towards the center of the polygon -LRB- see fig . 7 -RRB- . Suppose we add n vertices , equally spaced , onto the contour . If we increase n , we get an approximation of the medial axis . The medial axis of a polygon is the locus of points with equal distance to at least two contour points . It is a well studied object in pattern recognition , because it highly represents the metric and topological properties of shapes -LRB- cf. -LSB- Blu67 -RSB- -LSB- KKOK89 -RSB- -RRB- . If several contours are present in one layer , the external Voronoi skeleton or external medial axis is forming a kind of \ macro '' cells . The points inside such a \ macro '' Voronoi cell are closer to its contour than to any other contours . Hence the external Voronoi diagram is the locus of equidistance from at least two contours -LRB- see fig. 5 -RRB- . EVS IVS Figure 7 : Two approximations of the medial axis , with 27 and 72 vertices on the contour . The next step would be to calculate the real medial axis , not just its approximation . This can be done by constructing a generalization of the Voronoi diagram - the edge Voronoi diagram -LRB- EVD -RRB- - where sites are no longer points but entire contour edges -LRB- see -LSB- Kir79 -RSB- , -LSB- Yap87 -RSB- , -LSB- For85 -RSB- -RRB- . Once again we would get both an internal and external Voronoi skeleton , which now is built of straight line segments and arcs of parabola . The internal Voronoi skeleton is the medial axis representing the contour , the external Voronoi skeleton in fact is the generalized Voronoi diagram where the sites are simple closed polygons -LRB- the contours -RRB- . Finally we can imagine | we will see the reason later | to fill up the interior of the contours with nearly equally spaced vertices to achieve a regular triangular grid without obtuse angles . The construction of such a mesh is often required in finite element calculation , a solution by successive refinement is shown in Hermeline -LSB- Her82 -RSB- . Because such a mesh satisfies the empty circle condition , it is a Delaunay triangulation . The internal Voronoi skeleton of a filled polygon is a mesh of Voronoi cells , its density depends on that of the internal vertices . In case of infinite density , it would represent the entire area inside the contour . 4 Volume reconstruction We reduce the problem to find an overall reconstruction to computing a solid slice between each pair of adjacent cross sections . In each cross section , our input consists of one or several closed simple polygons , which possibly may lie one inside another . The contours are oriented in such a way that the inside of the object they are describing is on its right side , the outside on its left . Let P1 and P2 be two adjacent cross sections with C1 and C2 the set of contours in each plane . C1 = fc1iji = 1 : : n1g and C2 = fc2iji = 1 : : n2g , with cij being simple closed polygons . Let Si be the set of vertices of Ci -LRB- i = 1 ; 2 -RRB- . 4.1 The subdivision of the plane We first make a subdivision of the planes P1 and P2 , but unlike to the voxel method , where the plane is divided into a regular grid -LRB- pixels -RRB- , we choose the Delaunay triangulation of the contour vertices . If necessary , additional vertices are added on the contours , to satisfy the contour containment condition and to avoid obtuse angles , as described in the previous sections -LRB- see fig. 8 -RRB- . P1 P2 Figure 8 : Delaunay triangulation of contours in two adjacent planes The first advantage is the data reduction , since the number of triangles is linearly related to the number of contour vertices . To represent the object regions by a regular grid would cost space in quadratic terms . There are several reasons to take the Delaunay triangulation : ffl There exists several well known algorithms to calculate it . ffl The shape of a Delaunay triangle is in general compact -LRB- maximizing the minimal angle -RRB- . ffl Due to its close relationship to Voronoi diagrams , we can perform fast point location in it 4.2 2D to 3D mapping In the next step , for each triangle t 2 P1 we search the vertex v 2 P2 which lies closest to the circumcircle of t . We connect t with v to obtain a tetrahedron . The same is done with P1 and P2 inversed -LRB- see fig. 9 -RRB- . T2 T1 T12 P1 P2 Figure 9 : Connecting triangles to tetrahedra Up to now our triangulation consists of tetrahedra which we call of type t1 or t2 , depending on whether they have a facet in P1 and a vertex in P2 , or a facet in P2 and a vertex in P1 . The third kind of tetrahedra , called t12 , having one edge in P1 and one edge in P2 , is still missing . We define the graph G = V -LRB- S1 -RRB- -LSB- proj -LRB- V -LRB- S2 -RRB- -RRB- the union of the Voronoi diagram of S1 and the orthogonal projection of the Voronoi diagram of S2 onto the Voronoi diagram of S1 . All information is then contained in that graph : A Voronoi vertex of V -LRB- S1 -RRB- is representing a t1 tetrahedron , a Voronoi vertex of V -LRB- S2 -RRB- is representing a t2 tetrahedron , and each intersection of two Voronoi edges corresponds to a t12 tetrahedron . We call the vertices in G resp . t1 , t2 or t12 vertices . As shown in -LSB- Boi88 -RSB- , the resulting triangulation is in fact the 3D Delaunay triangulation of the vertices of S1 -LSB- S2 . Its border is the convex hull of S1 -LSB- S2 . 4.3 Elimination step We have to eliminate all tetrahedra having an edge in P1 or P2 outside the contours -LRB- see fig. 10 -RRB- . This corresponds to remove all vertices from G lying on external Voronoi skeletons . There may still remain non solid connections , tetrahedra which are only connected along an edge or at one single point to one of the two planes -LRB- see fig. 11 -RRB- . We can find and remove these portions in our graph G . If we discuss the behavior of the reconstruction on our graph G , we observe the following facts : ffl External Voronoi skeletons cut the object in parts . We call Ei the regions -LRB- cells -RRB- formed by the intersection of the external Voronoi skeletons in G -LRB- i = 1 : : k -RRB- . P1 P2 Figure 10 : Tetrahedra lying outside the contours Figure 11 : Non solid connections ffl If an external Voronoi skeleton crosses an internal Voronoi skeleton , its corresponding contour is split along the Delaunay edge dual to the intersected Voronoi edge -LRB- See fig. 12 -RRB- . ffl Those parts of internal Voronoi skeletons lying in the same region Ej will correspond to the connected contour parts in the final reconstruction . ffl If the internal and external skeletons are good approximations of the medial axis -LRB- that is , the number of vertices on the contour polygons is sufficiently high -RRB- , contours will split along the external medial axis . Contour parts will be connected to their nearest-neighbor-contour parts . EV S2 P1 P2 P roj -LRB- EV S2 -RRB- Figure 12 : Contour split 4.4 Introducing internal vertices So far , this reconstruction algorithm works well for simple contours . With complex contours , especially for complicated branching and birth of holes , there may rest some unsatisfying results , which arise from the fact that there are no vertices inside the contours -LRB- see fig. 13 -RRB- . Contour splits only can occur along one single edge which is crossing the entire contour . What would happen if we fill up the interior of the contours in a way to achieve a regular , non obtuse triangle mesh described in the previous section , and apply our reconstruction algorithm on this configuration ? In figure 14 , the external Voronoi skeleton EV S2 in P2 cuts the contour in P1 in 3 regions : a0 , b0 and c0 . Since all small triangles have non-obtuse angles , their circumcenters are lying inside the triangles . So all the triangles lying in region a0 are connected to contour a , b0 to b and c0 to c . The splitting line in P1 would approximate more or less the projection of EV S2 , dependent on the size of the small triangles and hence on the number of inserted vertices . Fortunately , it is not necessary to fill the a b c d Figure 13 : Internal points : -LRB- a -RRB- , -LRB- c -RRB- solutions without internal vertices , -LRB- b -RRB- , -LRB- d -RRB- would be better solutions a b c a ' b ' c ' P2 P1 EV S2 Proj -LRB- EV S2 -RRB- Figure 14 : Contours with small triangular mesh inside entire contours to get this result . It is sufficient to put vertices onto the projections of the external Voronoi skeletons in the opposite planes . a b c a ' b ' c ' P2 P1 EV S2 Figure 15 : Internal vertices along the projection of the external Voronoi skeleton In figure 15 , vertices have been inserted inside the contour in P1 , along the projection of EV S2 . The contour contains now three internal Voronoi skeletons , which lie inside the regions a0 , b0 and c0 , if the density of inserted points is sufficient , and the procedure to avoid obtuse angles is applied . Thus the region a0 is connected to contour a , b0 to b and c0 to c . The splitting line now follows the projection of EV S2 , which itself is the approximation of the medial axis -LRB- see fig. 16 -RRB- . Our complete reconstruction algorithm looks now as follows : 1 . In each cross section do : -LRB- a -RRB- Compute the 2D Delaunay triangulation of the vertices -LRB- b -RRB- Add vertices to satisfy the contour containment condition -LRB- c -RRB- Add vertices to avoid obtuse angles -LRB- d -RRB- Add vertices along the external Voronoi skeleton inside the contours of the two adjacent sections 2 . With each pair of adjacent cross sections do : -LRB- a -RRB- Extend the two 2D triangulations to one 3D Delaunay triangulation -LRB- b -RRB- Remove external tetrahedra and non-solid connections Figure 16 : An example of splitting one contour into three branches . cross added cpu time / surface sections contours points points time point tiles pelvis 23 84 2059 622 6.50 s 3.15 ms 5518 knee 42 106 2028 191 5.33 s 2.62 ms 4386 heart 29 58 1222 243 3.60 s 2.94 ms 2988 head 17 25 856 155 2.35 s 2.74 ms 2032 Figure 17 : Some experimental results 5 Experimental Results The algorithm has been implemented in C and tested with various medical data . In all practical cases , the cpu time is almost linearly related to the number of contour vertices , because we are exploiting the fact that input vertices are sorted along contours . This allows a constant time point location . The cpu time on a DECstation 5000 is less than 4ms per vertex . Experience has shown that the number of added vertices depends on the contour complexity and does rarely exceed 30 % . Fig. 17 shows some typical results . The pelvis in fig. 20 has been rendered on a Personal Iris . 6 Conclusion We have shown a solution to the reconstruction problem using the 3D Delaunay triangulation . The heuristics are based on the notion of the medial axis , thus realizing a nearest neighbor connection between adjacent planes . Especially , we showed how to calculate an approximation of the medial axis , whose quality is adjustable by adding automatically vertices on and inside the contours . Our method provides a 3D polygonal representation , composed of tetrahedra . The surface triangles are used for visualization . The tetrahedra structure is useful for further applications , like simulation of motion or finite element methods . Acknowledgment We are grateful to Frank Muennemann from Resonex Inc. , Sunnyvale CA for providing the MR data of the pelvis . The figures in this document have been created with Jpdraw . a c b d Figure 18 : a -RRB- and b -RRB- show two adjacent cross sections of a pelvis . Slice distance is about 8mm . The vertices inserted during the reconstruction are shown in c -RRB- and d -RRB- . a b c d Figure 19 : a -RRB- The upper cross section of fig. 18 with internal -LRB- bold -RRB- and external -LRB- bold dashed -RRB- Voronoi skeleton . b -RRB- The reconstructed surface between the two sections , seen from above . c -RRB- and d -RRB- are two shaded perspective views of the slice . Figure 20 : The overall reconstruction of a human pelvis from 23 MR images References -LSB- BGLS85 -RSB- C. Barillot , B. Gilbaud , L. M. Luo , and J.M. Scarabin . 3-d representation of anatomic structures from CT examination . In Biostereometrics , pages 307 -LCB- 314 , 1985 . -LSB- Blu67 -RSB- H. Blum . A transformation for extracting new descriptors of shape . In W. Walthen-Dunn , editor , Models for the perception of speech and visual form . MIT Press , Cambridge , MASS , 1967 . -LSB- Boi88 -RSB- J-D . Boissonnat . Shape reconstruction from planar cross-sections . Computer Vision , Graphics , and Image Processing , 44:1 -LCB- 29 , 1988 . -LSB- CS78 -RSB- H. N. Christiansen and T. W. Sederberg . Conversion of complex contour line definitions into polygonal element mosaics . Computer Graphics , 8:658 -LCB- 660 , August 1978 . -LSB- FKU77 -RSB- H. Fuchs , Z. Kedem , and S.P. Uselton . Optimal surface reconstruction from planar contours . Communications of the ACM , 20:693 -LCB- 702 , 1977 . -LSB- For85 -RSB- S. J. Fortune . Fast algorithms for polygon containment . In LNCS 194 -LRB- 12th Colloquium on Automata , Languages and Programming -RRB- , pages 189 -LCB- 198 . Springer-Verlag , 1985 . -LSB- HB86 -RSB- K.H. Hoehne and R. Bernstein . Shading 3d-images from CT using graylevel gradients . IEEE Trans . Medical Imaging , pages 45 -LCB- 47 , 1986 . -LSB- Her82 -RSB- F. Hermeline . Triangulation automatique d'un poly?edre en dimension n. RAIRO Mod?el . Math . Anal . Numer. , 16 -LRB- 3 -RRB- :211 -LCB- 242 , 1982 . -LSB- Kep75 -RSB- E. Keppel . Approximating complex surfaces by triangulation of contour lines . IBM Journal of res . and development , 19:2 -LCB- 11 , 1975 . -LSB- Kir79 -RSB- D.G. Kirkpatrick . Efficient computation of continuous skeletons . In IEEE Symposium on Foundations of Computer Science , volume 20 , pages 18 -LCB- 27 , 1979 . -LSB- KKOK89 -RSB- O. Kuebler , F. Klein , R. Ogniewicz , and U. Kienholz . Isolation and identification of abutting and overlapping objects in binary images . In 5th internat . Conference on Image Analysis and Processing , Positano , Italy , September 1989 . World Scientific . -LSB- LC87 -RSB- W. Lorensen and H. Cline . Marching cubes : a high resolution 3d surface construction algorithm . Computer Graphics , 21:163 -LCB- 169 , 1987 . -LSB- Lev88 -RSB- M. Levoy . Display of surfaces from volume data . IEEE Computer Graphics and Applications , pages 29 -LCB- 37 , 1988 . -LSB- MSS91 -RSB- D. Meyers , S. Skinner , and K. R. Sloan . Surface from contour : The correspondence and branching problems . In Graphics Interface , 1991 . -LSB- PS85 -RSB- F.P. Preparata and M.I. Shamos . Computational Geometry : an Introduction . Springer-Verlag , 1985 . -LSB- SFF91 -RSB- M. R. Stytz , G. Frieder , and O. Frieder . Three-dimensional medical imaging : Algorithms and computer systems . ACM Computing Surveys , 23 -LRB- 4 -RRB- :421 -LCB- 499 , December 1991 . -LSB- Sha81 -RSB- M. Shantz . Surface definition for branching contour defined objects . Computer Graphics , 15:242 -LCB- 270 , July 1981 . -LSB- Toe89 -RSB- K. D. Toennies . Surface triangulation by linear interpolation in intersection planes . In Science and Engineering of Medical Imaging , pages 98 -LCB- 105 , 1989 . -LSB- Yap87 -RSB- C.K. Yap . An O -LRB- n log n -RRB- algorithm for the Voronoi diagram of a set of simple curve segments . Discrete and Computational Geometry , 2:365 -LCB- 393 , 1987 .

O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O B I O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O B I O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O O

3d reconstruction
delaunay triangulation
medial axis
voronoi diagrams