<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">JSIP</journal-id><journal-title-group><journal-title>Journal of Signal and Information Processing</journal-title></journal-title-group><issn pub-type="epub">2159-4465</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/jsip.2014.53009</article-id><article-id pub-id-type="publisher-id">JSIP-48300</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>COMPUTER SCIENCE &amp; COMMUNICATIONS</subject></subj-group></article-categories><title-group><article-title>Survey of Surface Reconstruction Algorithms</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Amin</surname><given-names>Alqudah</given-names></name><xref ref-type="aff" rid="aff1"><sub>1</sub></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><label>1</label><addr-line>Computer Engineering Department, Hijjawi Faculty for Engineering Technology, Yarmouk University, Irbid, Jordan</addr-line></aff><author-notes><corresp id="cor1">* E-mail:<email>amin.alqudah@yu.edu.jo</email></corresp></author-notes><pub-date pub-type="epub"><day>30</day><month>07</month><year>2014</year></pub-date><volume>05</volume><issue>03</issue><fpage>63</fpage><lpage>79</lpage><history><date date-type="received"><day>8</day>	<month>April</month>	<year>2013</year></date><date date-type="rev-recd"><day>15</day>	<month>May</month>	<year>2013</year>	</date><date date-type="accepted"><day>7</day>	<month>June</month>	<year>2013</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
	Surface reconstruction is
a problem in the field of computational geometry that is concerned with
recreating a surface from scattered data points sampled from an unknown
surface. To date, the primary application of surface reconstruction algorithms
has been in computer graphics, where physical models are digitized in three
dimensions with laser range scanners or mechanical digitizing probes
(Bernardini et al., 1999 [1]). Surface reconstruction algorithms
are used to convert the set of digitized points into a wire frame mesh model,
which can be colored, textured, shaded, and placed into a 3D scene (in a movie
or television commercial, for example). In this paper, we discuss some
computational geometry preliminaries, and then move on to a summary of some different
techniques used to address the surface reconstruction problem. The coming
sections describe two algorithms: that of Hoppe, et al. (1992 [2]) and Amenta, et al. (1998 [3]). Finally, we present other
applications of surface reconstruction and a brief comparison for some
algorithms in this filed emphasizing on their advantages and disadvantages.
</p></abstract><kwd-group><kwd>Surface Reconstruction</kwd><kwd> Convex Hull</kwd><kwd> Delaunay Triangulation</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>Computational geometry can be described as the field of study concerned with the design and implementation of algorithms used for the efficient solution of geometric problems (O’Rourke, 1998 [<xref ref-type="bibr" rid="scirp.48300-ref4">4</xref>] ). Three core interests in computational geometry involving a set of points in R<sup>n</sup> (the set of real numbers in n-dimensional space) are the convex hull, the Delaunay triangulation, and the Voronoi diagram.</p><sec id="s1_1"><title>1.1. The Convex Hull</title><p>The convex hull of a set of points S is the unique convex polytope (polygon in 2D, polyhedron in 3D) that contains S and also has points of S as its vertices (de Berg et al., 1997 [<xref ref-type="bibr" rid="scirp.48300-ref5">5</xref>] ). Intuitively, one could imagine a set of pushpins, each corresponding to a point in R<sup>2</sup>, in a corkboard; a string wrapped tightly around the outermost boundary of the pushpins is the two-dimensional convex hull of the set of points represented by the pushpins.</p></sec><sec id="s1_2"><title>1.2. The Delaunay Triangulation</title><p>It is often desirable to connect a set of points S in R<sup>2</sup> into a triangular network or mesh, which is called a triangulation of S. There are many possible triangulations for a given set of points; of special interest is the Delaunay triangulation. The 2D Delaunay triangulation has many useful properties:</p><p>1) It is a connected graph;</p><p>2) It is the dual of the Voronoi diagram;</p><p>3) No vertices are contained within the circumcircle (the unique circle containing a triangle’s three vertices) of any triangle in the mesh;</p><p>4) It is the configuration with the “fattest” possible set of triangles, i.e. with triangles most closely approaching an equilateral shape;</p><p>5) The boundary of the Delaunay triangulation is equal to the convex hull of the vertices of the mesh;</p><p>6) The Delaunay triangulation of a set of points is unique if, for each triangle in the mesh, no more than three vertices lie on the circumcircle of the triangle.</p><p>See <xref ref-type="fig" rid="fig1">Figure 1</xref> for an illustration of the Delaunay triangulation of a set of points in 2D.</p><p>The Delaunay triangulation can be extended to higher dimensions, in which case the mesh is a network of simplices. In three dimensions, for example, the mesh is made up of tetrahedra (a tetrahedron is a 2-simplex). All of the above properties hold with the following generalizations to items 3, 4, and 6:</p><p>3’. no vertices are contained within the circumsphere (the unique sphere or hypersphere containing a simplex’s vertices) of any simplex in the mesh,</p><p>4’. it is the configuration with the “fattest” possible set of simplices, i.e. with simplices most closely approaching an equilateral shape,</p><p>6’. the Delaunay triangulation of a set of points is unique in R<sup>n</sup> if, for each simplex in the mesh, no more than n vertices lie on the circumsphere of the simplex.</p></sec><sec id="s1_3"><title>1.3. The Voronoi Diagram</title><p>Given a set of points S in R<sup>n</sup>, it is sometimes useful to subdivide space into regions in which all points in a given</p><fig id="fig1"><label>Figure 1</label><caption><p> Two-dimensional Delaunay Triangulation of a set S of points. Red: Delaunay triangulation edges. Green: Delaunay triangulation vertices (points in S). [http://www.cs.colorado.edu/~lizb/topology-defs.html]</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\a68431a7-b516-4bb5-9619-c7a37acfe2a9.png"/></fig><p>region are closer to one point in S than to any other point in S. Such a subdivision is called the Voronoi diagram (sometimes referred to as the Voronoi tessellation) of S (de Berg, et al., 1997 [<xref ref-type="bibr" rid="scirp.48300-ref5">5</xref>] ). See <xref ref-type="fig" rid="fig2">Figure 2</xref>.</p><p>It was previously mentioned that the Voronoi diagram is the dual of the Delaunay triangulation. Technically, this is the case (in two dimensions) only if no four (or more) points of S lie on a circle (de Berg, et al., 1997 [<xref ref-type="bibr" rid="scirp.48300-ref5">5</xref>] ). If this condition is met, then given a Voronoi diagram V and a Delaunay triangulation D of a set of points S in R<sup>2</sup>:</p><p>• For each edge D, there is a corresponding edge in V.</p><p>• Each edge of D is bisected by the line containing an edge of V.</p><p>• There is a triangular face of D for each vertex of V.</p><p>• The center of each circumcircle of a triangle D is a vertex of V.</p><p>As shown in <xref ref-type="fig" rid="fig3">Figure 3</xref>, these rules extend readily to higher dimensions. For instance, in three dimensions the center of each circumsphere of a tetrahedron in D is a vertex of V.</p></sec></sec><sec id="s2"><title>2. Survey of Surface Reconstruction Algorithms</title><p>In this section we present a brief summary of several different approaches to solving the problem of surface reconstruction. Many techniques have been proposed and we do not attempt to be comprehensive in our review. Rather, we will focus on a handful of the more important algorithms put forth to date.</p><p>All of the surface reconstruction algorithms we looked at attempt to solve the surface reconstruction problem in R<sup>3</sup>. All are methods consisting of a number of fundamental algorithms, many of which are well-known (for instance computation of the Delaunay triangulation, Voronoi diagrams, convex hull, minimum spanning tree, etc.). Most researchers try to solve the general surface reconstruction problem, which is to produce a surface that is a reconstruction or an approximation of the unknown surface, given a set of scattered (unorganized) points sampled on the unknown surface and no other information. Other approaches require additional input. For example Hoppe, et al.’s (1992 [<xref ref-type="bibr" rid="scirp.48300-ref2">2</xref>] ) method uses information about the sampling process (accuracy and density) and the algorithm of Crossno and Angel (1999 [<xref ref-type="bibr" rid="scirp.48300-ref6">6</xref>] ) takes surface normal and sample point neighbor information as supplementary input.</p><fig id="fig2"><label>Figure 2</label><caption><p> Two-dimensional Voronoi diagram of a set S of points. Blue: Voronoi edges. Red: Points in S. Green: Voronoi vertices. [http://www.cs.colorado.Edu/~lizb /topology-defs.html</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\e5188d87-1a06-4893-9fb0-25c85a6158e8.png"/></fig><fig id="fig3"><label>Figure 3</label><caption><p> Voronoi/Delaunay duality. [http://www.ead.eee.ufmg.br/~renato/geocomp/delaunay/92.html</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\a6191124-34a5-439d-a08d-420fc9431bb0.png"/></fig><sec id="s2_1"><title>2.1. Boissonnat, 1984 [7]</title><p>In an early paper on the subject of surface reconstruction, Boissonnat (1984 [<xref ref-type="bibr" rid="scirp.48300-ref7">7</xref>] ) proposed two different techniques. His first approach, which he describes as being surface-based, is locally two-dimensional. The algorithm starts by computing the k nearest neighbors (where k is an input parameter to the algorithm) of each sample point. This is accomplished through the use of a k-d tree (see Bentley and Friedman, 1979 [<xref ref-type="bibr" rid="scirp.48300-ref8">8</xref>] for details concerning k-d trees). An arbitrarily chosen starting edge connecting two k-neighbors is set to the current edge. The local tangent plane to the surface at the current edge is approximated by a least-squares plane through the neighbors of the endpoints of the current edge. Edges are added according to a rule that chooses points from the list of k-neighbors and locally preserves Delaunay angle properties when points are orthographically projected onto the approximate tangent plane. At each step, edges are added and the tangent plane is updated. The process continues until all sample points have been added to the triangulated edge structure. Boissonnat asserted that this method is valid provided the density of samples at any point on the surface is less than the radius of curvature at that point. The main problem with Boissonnat’s approach is that it is not robust with datasets that are sparse and non-uniform (Boissonnat and Cazals, 2000).</p><p>The second algorithm suggested by Boissonnat in his 1984 [<xref ref-type="bibr" rid="scirp.48300-ref7">7</xref>] paper takes a volumetric approach. The first step is to construct a three-dimensional Delaunay triangulation of the sample points. Next, tetrahedra are culled from the triangulation according to the following rule, as stated on his paper:</p><p>“The only tetrahedra that can be eliminated are those with exactly one face, three edges and three points on P, or those with exactly two faces, five edges and four points on P.”</p><p>Where P is the boundary of the polyhedral shape obtained by removing tetrahedra from the Delaunay triangulation. After culling, P is output as a piecewise linear reconstruction of the unknown surface (i.e., a triangular mesh). Boissonnat calls the culling process “sculpturing”. The biggest drawback to the sculpturing approach is that it is possible that some sample points may still remain inside of P upon termination of the algorithm (Bernardini, et al., 1999 [<xref ref-type="bibr" rid="scirp.48300-ref1">1</xref>] ).</p></sec><sec id="s2_2"><title>2.2. Hoppe, et al., 1992 [2]</title><p>Hoppe, et al. (1992 [<xref ref-type="bibr" rid="scirp.48300-ref2">2</xref>] ) take a fundamentally different approach to solving the surface reconstruction problem. Their method attempts to approximate the unknown surface rather than reconstructing it in piecewise linear fashion. The algorithm defines a signed distance function at each sample point and then contours the zero-set of the function using the Marching Cubes algorithm (for an explanation of this algorithm, see Lorensen and Cline, 1987 [<xref ref-type="bibr" rid="scirp.48300-ref9">9</xref>] ). The method of (Hoppe, et al.) will be described in detail in Section 3.0 of this paper.</p></sec><sec id="s2_3"><title>2.3. Amenta, et al., 1998 [3]</title><p>The surface reconstruction method of Amenta, et al. (1998 [<xref ref-type="bibr" rid="scirp.48300-ref3">3</xref>] ) is similar to Boissonnat’s sculpturing algorithm. They also construct a three-dimensional Delaunay triangulation of the dataset, but not before augmenting it with one or two “poles” per sample point. The poles are selected from the set of Voronoi vertices. The output mesh, which they call the “crust” of the sample points, is guaranteed to be topologically correct provided the sampling density is adequate. This algorithm will be explained in much greater depth in Section 4.0 of this paper.</p></sec><sec id="s2_4"><title>2.4. Other Surface Reconstruction Algorithms</title><p>The algorithm of Boissonnat and Cazals (2000 [<xref ref-type="bibr" rid="scirp.48300-ref10">10</xref>] ) combines the zero-set and Voronoi techniques, and produces a smooth surface that passes through all sample points. However their method requires the additional input of a normal value at each sample point. Crossno and Angel’s (1999 [<xref ref-type="bibr" rid="scirp.48300-ref6">6</xref>] ) Spiraling Edge algorithm takes sample data plus normal and nearest neighbor information as input. The authors assert that their specialized approach is three orders of magnitude faster than general-purpose surface reconstruction algorithms. In 2001, Carr, et al. [<xref ref-type="bibr" rid="scirp.48300-ref11">11</xref>] presented a new surface reconstruction algorithm that represents the unknown surface as the zero-set of a polyharmonic radial basis function. Their method is well suited for very large datasets (hundreds of thousands or even millions of sample points).</p></sec></sec><sec id="s3"><title>3. The Zero-Set Algorithm of Hoppe, et al.</title><p>Hoppe, et al. (1992 [<xref ref-type="bibr" rid="scirp.48300-ref2">2</xref>] ) address the problem of reconstructing a surface from unorganized points without using any other knowledge of the sampled surface (such as neighbor or normal information). They offer no guarantees of convergence or correctness for their algorithm, but they claim that it works well in practice. Their method is called a zero-set algorithm because it approximates a surface formed by the set of points that have a signed distance of zero to the surface.</p><sec id="s3_1"><title>3.1. Required Sampling Information</title><p>Although the algorithm requires no information about the sample points other than their coordinates, it does require knowledge of the sampling process. Two sampling parameters are employed:</p><p>• Noise magnitude δ: the maximum sampling error; for example the accuracy of a laser scanner.</p><p>• Sampling density ρ: the radius of a sphere, such that any sphere with radius ρ and center o in the unknown surface M contains at least one sample point. Intuitively, ρ represents the radius of the maximum “hole” in the sampled dataset.</p><p><xref ref-type="fig" rid="fig4">Figure 4</xref> shows the original object used by Hoppe et al. to illustrate their algorithm and <xref ref-type="fig" rid="fig5">Figure 5</xref> shows the points that were sampled from this object.</p></sec><sec id="s3_2"><title>3.2. Tangent Plane Computation</title><p>The first step of the algorithm is to estimate a tangent plane at each sample point. The tangent planes approximate the tangent to the unknown surface M at each of the sample points. A k-neighborhood is defined as the k closest points surrounding a sample point, where k is a user-specified parameter. Tangent planes are computed at by fitting a least-square plane through points in the k-neighborhood of each sample point. Tangent planes are represented by their center point o and by their normal vector n.</p></sec><sec id="s3_3"><title>3.3. Tangent Plane Orientation</title><p>The next phase of the algorithm is to find a consistent orientation for the tangent planes. All tangent plane normal vectors must point away from the object. Therefore, it is necessary to flip tangent plane normal vectors that point in the wrong directions. The first step in orienting the tangent planes is to compute the Euclidean Minimum Spanning Tree (Euclidean MST or EMST) of the graph connecting the tangent plane centers (o<sub>i</sub>). The</p><fig id="fig4"><label>Figure 4</label><caption><p> The original object. (Hoppe, et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\d71a0af9-d422-4bad-af78-d677ea786570.png"/></fig><fig id="fig5"><label>Figure 5</label><caption><p> The sampled points. ( Hoppe et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\5cb5d1d4-a15e-468e-89e0-9dbf15f692c7.png"/></fig><p>Euclidean MST is a minimum spanning tree of a connected graph with weights equal to the Euclidean lengths of its edges as shown in <xref ref-type="fig" rid="fig6">Figure 6</xref>. The authors found that the EMST is insufficiently dense in edges for tangent plane orientation to work properly. To solve this problem, they enrich the EMST by adding edges corresponding to the tangent plane centers that are in the same k‑neighborhood. The resulting graph is called the Riemannian Graph and it is illustrated in <xref ref-type="fig" rid="fig7">Figure 7</xref>.</p><p>Normal-flipping takes place during traversal of the Riemannian Graph. Therefore, the graph should be traversed along a set of paths that prefers edges between tangent planes that are most closely parallel. To accomplish this, Riemannian Graph edge weights are defined as<inline-formula><inline-graphic xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\8b03303c-5347-4a46-95ee-1cc9280e6fbb.png" xlink:type="simple"/></inline-formula>, so that the cost will be small if the planes are almost parallel. The MST of the Riemannian Graph is based on the weight values defined as just described; see <xref ref-type="fig" rid="fig8">Figure 8</xref>. The root of the MST of the Riemannian Graph is assigned to the tangent plane center with the</p><fig id="fig6"><label>Figure 6</label><caption><p> Euclidean MST (Hoppe, et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\cfaae2b2-2329-4e37-8c35-417f88d9f9ca.png"/></fig><fig id="fig7"><label>Figure 7</label><caption><p> Riemannian graph ( Hoppe et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\3beaf49c-dac1-45a3-9762-926eaff8efa0.png"/></fig><p>largest z coordinate. The root’s tangent plane normal is set to point in the direction of the +z axis (away from the object). Finally, the MST is traversed in depth first order. During traversal, each tangent plane normal is set to point in a direction that is consistent with its parent node’s tangent plane normal in the MST; see <xref ref-type="fig" rid="fig9">Figure 9</xref>.</p></sec><sec id="s3_4"><title>3.4. Computing Signed Distances</title><p>For the next stage of Hoppe, et al.’s algorithm, it is necessary to find the signed distance d from a point p to the closest point on the unknown surface M. Since M is unknown, the solution the authors came up with to obtain d is to use the tangent plane with center closest to p as an approximation to the distance to the unknown surface M. The signed distance is positive if p is in front of the tangent plane, zero if p is on the tangent plane, and negative if p is behind the tangent plane. Let D be the distance between p and the closest tangent plane center. The signed</p><fig id="fig8"><label>Figure 8</label><caption><p> Riemannian graph MST ( Hoppe, et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\2bf6f42d-96b1-4c18-a968-59fa7a7b78e8.png"/></fig><fig id="fig9"><label>Figure 9</label><caption><p> Oriented tangent planes ( Hoppe et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\96c054d4-2144-4853-bdee-be25a73df947.png"/></fig><p>distance d is considered to be undefined if D &gt;= ρ + δ.</p><p>In pseudocode, the signed distance calculation looks like this:</p><p>find index of closest tangent plane center o<sub>i</sub></p><p>compute projection z of p onto tangent plane</p><p>if (D &lt; ρ + δ)</p><p>d ← &#177; || p – z ||</p><p>else</p><p>d ← undefined</p><p>end if</p></sec><sec id="s3_5"><title>3.5. Contouring the Surface</title><p>Just as two-dimensional meteorological and topographic datasets can be contoured as 1D curves in R<sup>2</sup>, three-dimensional datasets can be contoured as surfaces in R<sup>3</sup> (<xref ref-type="fig" rid="fig10">Figure 10</xref> and <xref ref-type="fig" rid="fig11">Figure 11</xref>). The marching cubes algorithm (Lorensen and Cline, 1987 [<xref ref-type="bibr" rid="scirp.48300-ref9">9</xref>] ) is used to contour 3D datasets as surfaces in R<sup>3</sup>. In the Hoppe, et al. method, a 3D grid of cubes is superimposed on the sampled dataset (<xref ref-type="fig" rid="fig12">Figure 12</xref>). The cube size is determined by the value of ρ + δ. Cube vertices are plugged into the signed distance code to obtain a signed distance at each vertex. The resultant grid of signed distances is contoured using the Marching Cubes algorithm as shown in <xref ref-type="fig" rid="fig13">Figure 13</xref>. As an optimization, cubes that do not intersect the surface are not considered.</p></sec><sec id="s3_6"><title>3.6. Comparison with Original</title><p><xref ref-type="fig" rid="fig14">Figure 14</xref> and <xref ref-type="fig" rid="fig15">Figure 15</xref> show the original and reconstructed surfaces, respectively. The approximation is reasonable with the exception of a rounding-out of sharp edges.</p><fig id="fig10"><label>Figure 10</label><caption><p> 2D contours [Landmark Graphics Corporation]</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\e497553b-e0ec-48d9-86ee-50a315c58149.png"/></fig><fig id="fig11"><label>Figure 11</label><caption><p> 3D contours [http://www.exaflop.org/docs/marchcubes/ind.html]</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\69da133c-b37e-4900-ae89-34cb44521601.png"/></fig><fig id="fig12"><label>Figure 12</label><caption><p> Cubes visited ( Hoppe, et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\d96a4f39-61a0-495a-ada4-abeb22fe4c37.png"/></fig><fig id="fig13"><label>Figure 13</label><caption><p> Marching cubes output (Hoppe et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\83c095cb-3d2b-40c7-a68a-1c41784901b8.png"/></fig></sec><sec id="s3_7"><title>3.7. Complexity</title><p>The complexity of Hoppe et al.’s algorithm can be summed up as follows:</p><p>• EMST graph: O(n<sup>2</sup>).</p><p>• K-neighborhood: O(n + klogn).</p><p>• Nearest tangent plane: O(n).</p><p>• Construct Riemannian graph: O(nk).</p><p>• MST of Riemannian graph: O(nlogn).</p><p>• MST traversal: O(n).</p><p>• Contouring: O(v), where v is the number of cubes visited.</p></sec></sec><sec id="s4"><title>4. Amenta et al.’s Crust Algorithm</title><p>The Crust algorithm of Amenta et al. (1998 [<xref ref-type="bibr" rid="scirp.48300-ref3">3</xref>] ) leverages the concept of the medial axis to help constraint a 3 D</p><fig id="fig14"><label>Figure 14</label><caption><p> The original object (Hoppe, et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\6552e1ac-7dc8-486a-9f02-67e48b3fda81.png"/></fig><fig id="fig15"><label>Figure 15</label><caption><p> The reconstructed object (Hoppe et al., 1992 [2] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\c8ceb5df-c5fc-4c9a-943b-5a5bb97441d4.png"/></fig><p>Delaunay triangulation of the sample data to contain the unknown surface. The medial axis is defined to be the locus of points that have more than one closest point on the curve (2D) or surface (3D) (see <xref ref-type="fig" rid="fig16">Figure 16</xref> and <xref ref-type="fig" rid="fig17">Figure 17</xref>).</p><sec id="s4_1"><title>4.1. The 2D Crust Algorithm</title><p>Here is the two-dimensional crust algorithm (<xref ref-type="fig" rid="fig18">Figure 18</xref>):</p><p>1) Compute the Voronoi diagram of the sample points in two dimensions.</p><p>2) Construct the Delaunay Triangulation of the sample points plus the Voronoi vertices in two dimensions.</p><p>3) The 2D crust (reconstructed curve) is formed by extracting all edges that connect two sample points within the triangulation obtained in Step 2.</p><fig id="fig16"><label>Figure 16</label><caption><p> Medial axis in R<sup>2</sup> (red curve) (Amenta, et al., 1998 [3] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\b0212e4b-c7d8-454b-b562-23b19ed9c2ee.png"/></fig><fig id="fig17"><label>Figure 17</label><caption><p> Medial axis in R<sup>3</sup> (red surface) (Amenta, et al., 1998 [3] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\795cb44e-2cce-48a6-8daa-c0df77490e10.png"/></fig><fig-group id="fig18"><caption><title>Figure 18</title><p> Illustration of the 2D Crust algorithm (Amenta et al., 1998 [3] ). In both diagrams, Voronoi vertices are shown in red and sample points are drawn in black. In the Voronoi diagram shown on the top, it is clear that the Voronoi vertices approximate the medial axis of the curve represented by the sample points. The 2D crust is shown in black in the Delaunay triangulation on the bottom</p></caption><fig id ="fig18_1"><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\d186943c-60d6-43fb-b51a-5ef5cd1dfa53.png"/></fig><fig id ="fig18_2"><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\18fd8e84-b722-41e1-ab6e-b7f80ce825a8.png"/></fig></fig-group><p>In two dimensions, the Voronoi vertices approximate the medial axis. Adding the Voronoi vertices tends to break edges connecting non-adjacent sample points. This will always be true for a sufficiently sampled dataset. The authors call the process of removing edges between non-adjacent sample points Voronoi filtering.</p></sec><sec id="s4_2"><title>4.2. Obtaining the Sample Point Poles for Use in the 3D Crust Algorithm</title><p>The 2D Crust algorithm can be extended to 3D with some modifications. The main difficulty in extending the algorithm is that in three dimensions, the Voronoi vertices don’t necessarily lie close to the medial axis. Fortunately, even though Voronoi vertices aren’t guaranteed to be close to the medial axis, many are. In the 3D Voronoi filtering step, instead of using all Voronoi vertices, the authors use the two Voronoi vertices that are furthest from each sample point s on opposite sides of the unknown surface. They call these vertices the poles of the sample point (see <xref ref-type="fig" rid="fig19">Figure 19</xref>).</p><p>The sample point poles are obtained as illustrated in <xref ref-type="fig" rid="fig20">Figure 20</xref> in two steps:</p><p>1) Find the Voronoi vertex that is furthest from the sample point s. This vertex is the positive pole, denoted p+.</p><p>2) Find the Voronoi vertex furthest from s such that the dot product of sp+ and sp− is negative. This ensures that the poles are on opposite sides of the surface.</p></sec><sec id="s4_3"><title>4.3. The 3D Crust Algorithm</title><p>The 3D Crust algorithm can be described as follows:</p><p>1) Compute the Voronoi diagram of the sample points in three dimensions.</p><p>2) Construct the Delaunay triangulation of the sample points plus the sample point poles (all p+ and p−) in three dimensions.</p><p>3) The 3D crust (reconstructed surface) is formed by extracting all triangles that connect three sample points within the triangulation obtained in Step 2.</p><p>An example of the 3D crust of a set of sample points extracted from a synthetic surface is shown in <xref ref-type="fig" rid="fig21">Figure 21</xref>.</p></sec><sec id="s4_4"><title>4.4. Post-Processing</title><p>There are two separate stages of post-processing: normal filtering and sharp edge filtering. Normal filtering</p><fig id="fig19"><label>Figure 19</label><caption><p> Sample point poles. In this diagram, the poles are marked as p+ and p−. (Amenta, et al., 1998 [3] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\fdef6a8f-ac2a-45cb-bcdf-18798df8cee0.png"/></fig><fig id="fig20"><label>Figure 20</label><caption><p> Obtaining the Poles. The sample point is colored blue and is denoted as s. (Amenta, et al., 1998 [3] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\96e0c1a2-0f54-4ff5-81d3-6695b4ccb4b9.png"/></fig><fig id="fig21"><label>Figure 21</label><caption><p> Crust of sample points de rived from a synthetic surface. Poles are shown in white. (Amenta, et al., 1998 [3] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\512c6dfc-8d7c-40a6-825a-89bb1acb0e4d.png"/></fig><p>attempts to remove invalid triangles such as those depicted in <xref ref-type="fig" rid="fig22">Figure 22</xref>. Since the sample poles tend to be perpendicular to the surface, triangles with normal values that differ too much from the vector between the poles p+ and p− are likely to be incorrect (not parallel to the surface) and are therefore removed.</p><p>If it is known that the surface being reconstructed is smooth, then triangles forming sharp edges can be safely removed. Adjacent triangles that form an angle of less than 90 degrees are considered to be part of a sharp edge and are removed by the algorithm. If the surface is not known to be smooth, then sharp edge filtering can not be applied. The Crust surface reconstruction algorithm does not work well when the surface being reconstructed contains sharp edges. The authors experimented with different ways of choosing the poles and were able to improve reconstructions of surfaces with sharp edges.</p><fig id="fig22"><label>Figure 22</label><caption><p> Invalid triangles that normal filtering attempts to remove. See the detail area within the red dashed circle. (Modified from Amenta, et al., 1998 [3] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\216946f2-6901-4e48-a916-fd4ea738cbd1.png"/></fig></sec><sec id="s4_5"><title>4.5. Selected Results</title><p>Examples of the reconstructed surfaces built by the Amenta, et al. algorithm are shown in <xref ref-type="fig" rid="fig23">Figure 23</xref>. The authors offer theoretical guarantees of correctness and convergence provided that certain sampling criteria are met. In practice, however the algorithm occasionally leaves holes or extra invalid triangles in place, in spite of the post-processing efforts described in Section 4.4.</p></sec><sec id="s4_6"><title>4.6. Complexity</title><p>Here is a summary of the complexity of the Amenta, et al. algorithm:</p><p>• 2D Delaunay Triangulation: O(nlgn).</p><p>• 3D Delaunay Triangulation: O(n<sup>2</sup>) in the worst case; usually O(n) in practice (input-sensitive).</p><fig id="fig23"><label>Figure 23</label><caption><p> Selected results. (Amenta, et al., 1998 [3] )</p></caption><graphic xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://file.scirp.org/Html/htmlimages\1-3400289x\92ec4f82-0f92-4e5e-9adc-78081ef51ff5.png"/></fig><p>• Voronoi Diagram: The Voronoi vertices are obtained from the Delaunay triangulation, so the running time is the same as for Delaunay triangulation.</p><p>• All other steps: O(n).</p></sec></sec><sec id="s5"><title>5. Summary and Conclusions</title><p>There are many applications for surface reconstruction; few were mentioned in the abstract and others could include:</p><p>• Surfaces generated from digital scans of real-world objects can be used as computer models in computer aided design (CAD) (Bernardini, et al., 1999 [<xref ref-type="bibr" rid="scirp.48300-ref1">1</xref>] ).</p><p>• Medical data can be segmented by hand-digitizing regions or structures of interest in medical datasets. The data may consist of slices through biological specimens (Hoppe, et al., 1992 [<xref ref-type="bibr" rid="scirp.48300-ref2">2</xref>] ), or possibly slices through 3D MRI or CT datasets. The digitized points can be reconstructed into surfaces that correspond to actual sur- faces in the sampled specimen.</p><p>• In the discipline of geophysics, 3D seismic datasets are often sliced and then hand-digitized along geological boundaries of interest. As with medical datasets, digitized points can be reconstructed into surfaces repre- senting real-world geological structures.</p><p>Although many surface reconstruction algorithms are available, this subject is still the focus of much current research. We discussed several different surface reconstruction algorithms in this paper, and we gave special attention to two important ones; the methods of Hoppe, et al. (1992 [<xref ref-type="bibr" rid="scirp.48300-ref2">2</xref>] ) and Amenta, et al. (1998 [<xref ref-type="bibr" rid="scirp.48300-ref3">3</xref>] ). The remainder of this section is devoted to a comparison of relative advantages and disadvantages between these two approaches.</p><sec id="s5_1"><title>• 5.1. Zero-Set (Hoppe, et al., 1992 [2]) vs. Crust (Amenta, et al., 1998 [3])</title><p>• Both algorithms consider the general case of unorganized sets of data points with no additional information.</p><p>• The algorithms take completely different approaches to solving the same problem.</p><p>• Both algorithms perform better when the sampling density is higher.</p><p>• In practice, both algorithms do a reasonably good job of reconstructing the unknown surface.</p></sec><sec id="s5_2"><title>• 5.2. Zero-Set: Advantages</title><p>• The output surface is guaranteed to be continuous with no holes or stray triangles.</p><p>• The running time of the algorithm is not dependent on the order of the input points.</p><p>• Seems to be faster in practice.</p><p>• Approximates the sample points (advantageous with noisy datasets).</p></sec><sec id="s5_3"><title>• 5.3. Zero-Set: Disadvantages</title><p>• Sharp edges are not handled properly—they tend to be rounded in the output surface.</p><p>• No provable guarantees of convergence or that the output surface will correctly approximate the input surface.</p><p>• You need to specify information about the sampling process (δ and ρ).</p><p>• Approximates the sample points (disadvantageous with low-noise datasets).</p></sec><sec id="s5_4"><title>• 5.4. Crust: Advantages</title><p>• Guaranteed to converge to a surface that correctly reconstructs (interpolates) the original unknown surface, provided that strict requirements of sampling density and smoothness are met.</p><p>• You don’t need to specify information about the sampling process.</p><p>• Interpolates the input points (advantageous with low-noise datasets).</p></sec><sec id="s5_5"><title>• 5.5. Crust: Disadvantages</title><p>• If the sample density requirement is not met, the output surface may contain holes and/or stray triangles.</p><p>• The algorithm has trouble with sharp edges.</p><p>• The running time of the algorithm is dependent on the order of the input points.</p><p>• Seems to be slower in practice.</p><p>• Interpolates the input points (disadvantageous with noisy datasets).</p></sec></sec><sec id="s6"><title>Acknowledgements</title><p>This research was supported by Yarmouk University, Jordan.</p></sec></body><back><ref-list><title>References</title><ref id="scirp.48300-ref1"><label>1</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>BERNARDINI</surname><given-names> F.</given-names></name>,<name name-style="western"><surname> BAJAJ</surname><given-names> C.</given-names></name>,<name name-style="western"><surname> CHEN</surname><given-names> J. </given-names></name>,<name name-style="western"><surname> SCHIKORE</surname><given-names> D. </given-names></name>,<etal>et al</etal>. (<year>1999,</year>)<article-title>BERNARDINI, F., BAJAJ, C., CHEN, J. AND SCHIKORE, D.  AUTOMATIC RECONSTRUCTION OF 3D CAD MODELS FROM DIGITAL SCANS</article-title><source> INTERNATIONAL JOURNAL OF COMPUTATIONAL GEOMETRY APPLICATIONS</source><volume> 9</volume>,<fpage> 327</fpage>-<lpage>370</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.48300-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">HOPPE, H., DEROSE, T. AND DUCHAMP, T. (1992) SURFACE RECONSTRUCTION FROM UNORGANIZED POINTS. PROCEEDINGS OF ACM SIGGRAPH’92, 27-31 JULY 1992, CHICAGO, 71-78.</mixed-citation></ref><ref id="scirp.48300-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">AMENTA, N., BERN, M. AND KAMVYSSELIS, M. (1998) A NEW VORONOI-BASED SURFACE RECONSTRUCTION ALGRORITHM. PROCEEDINGS OF ACM SIGGRAPH’98, 19-24 JULY 1998, ORLANDO, 415-422.</mixed-citation></ref><ref id="scirp.48300-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">O’ROURKE, J. (1998) COMPUTATIONAL GEOMETRY IN C. 2ND EDITION, CAMBRIDGE UNIVERSITY PRESS, CAMBRIDGE. 
HTTP://DX.DOI.ORG/10.1017/CBO9780511804120</mixed-citation></ref><ref id="scirp.48300-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">DE BERG, M., VAN KREVELD, M., OVERMARS, M. AND SCHWARZKOPF, O. (1997) COMPUTATIONAL GEOMETRY: ALGORITHMS AND APPLICATIONS. SPRINGER-VERLAG, BERLIN. HTTP://DX.DOI.ORG/10.1007/978-3-662-03427-9</mixed-citation></ref><ref id="scirp.48300-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">CROSSNO, P.J. AND ANGEL, E.S. (1999) SPIRALING EDGE: FAST SURFACE RECONSTRUCTION FROM PARTIALLY ORGANIZED SAMPLE POINTS. IEEE VISUALIZATION’99, 24-29 OCTOBER 1999, SAN FRANCISCO, 317-324. 
HTTP://DX.DOI.ORG/10.1109/VISUAL.1999.809903</mixed-citation></ref><ref id="scirp.48300-ref7"><label>7</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>BOISSONNAT</surname><given-names> J.-D. </given-names></name>,<etal>et al</etal>. (<year>1984</year>)<article-title>GEOMETRIC STRUCTURES FOR THREE-DIMENSIONAL SHAPE REPRESENTATION</article-title><source> ACM TRANSACTIONS ON GRAPHICS</source><volume> 3</volume>,<fpage> 266</fpage>-<lpage>286</lpage>.<pub-id pub-id-type="doi">HTTP://DX.DOI.ORG/10.1145/357346.357349</pub-id></mixed-citation></ref><ref id="scirp.48300-ref8"><label>8</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>BENTLEY</surname><given-names> J.L. </given-names></name>,<name name-style="western"><surname> FRIEDMAN</surname><given-names> J.H. </given-names></name>,<etal>et al</etal>. (<year>1979</year>)<article-title>BENTLEY, J.L. AND FRIEDMAN, J.H.  DATA STRUCTURES FOR RANGE SEARCHING</article-title><source> COMPUTING SURVEYS</source><volume> 111</volume>,<fpage> 398</fpage>-<lpage>409</lpage>.<pub-id pub-id-type="doi"></pub-id></mixed-citation></ref><ref id="scirp.48300-ref9"><label>9</label><mixed-citation publication-type="journal" xlink:type="simple"><name name-style="western"><surname>LORENSEN</surname><given-names> W.E. </given-names></name>,<name name-style="western"><surname> CLINE</surname><given-names> H. E. </given-names></name>,<etal>et al</etal>. (<year>1987</year>)<article-title>MARCHING CUBES: A HIGH RESOLUTION 3D SURFACE CONSTRUCTION ALGORITHM</article-title><source> COMPUTER GRAPHICS</source><volume> 21</volume>,<fpage> 163</fpage>-<lpage>169</lpage>.<pub-id pub-id-type="doi">HTTP://DX.DOI.ORG/10.1145/37402.37422</pub-id></mixed-citation></ref><ref id="scirp.48300-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">BOISSONNAT, J.-D. AND CAZALS, F. (2000) SMOOTH SHAPE RECONSTRUCTION VIA NATURAL NEIGHBOR INTERPOLATION OF DISTANCE FUNCTIONS. ACM SYMPOSIUM ON COMPUTATIONAL GEOMETRY, 12-14 JUNE 2000, HONG KONG, 223-232.</mixed-citation></ref><ref id="scirp.48300-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">CARR, J.C., BEATSON, R.K., CHERRIE, J.B., MITCHELL, T.J., FRIGHT, W.R., MCCALLUM, B.C. AND EVANS, T.R. (2001) RECONSTRUCTION AND REPRESENTATION OF 3D OBJECTS WITH RADIAL BASIS FUNCTIONS. PROCEEDINGS OF ACM SIGGRAPH’01, 12-17 AUGUST 2001, LOS ANGELES, 67-76.</mixed-citation></ref></ref-list></back></article>