Marching Cubes: A High Resolution 3D Surface Construction Algorithm - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Marching Cubes: A High Resolution 3D Surface Construction Algorithm

Description:

Marching Cubes: A High Resolution 3D Surface Construction Algorithm. William E. Lorenson ... Marching cubes: A High Resolution 3D Surface Construction Algorithm' ... – PowerPoint PPT presentation

Number of Views:382
Avg rating:3.0/5.0
Slides: 26
Provided by: csee3
Category:

less

Transcript and Presenter's Notes

Title: Marching Cubes: A High Resolution 3D Surface Construction Algorithm


1
Marching CubesA High Resolution 3D Surface
Construction Algorithm
  • William E. Lorenson
  • Harvey E. Cline
  • General Electric Company
  • Corporate Research and Development, SIGGRAPH 1987
  • Presented by Mark Blackburn, Fall 2005

2
Organization
  1. Motivation
  2. Related Work
  3. Information Flow
  4. Algorithm
  5. Short Demo
  6. Results
  7. Conclusion Future Work

3
Motivation
  • 3D visualization is critical to medical field
  • Existing algorithms inadequate
  • lack detail
  • may introduce artifacts
  • Create polygonal representation of constant
    density surfaces from 3D array of data

4
Related Work
  • Existing methods of 3D surface generation
  • Trace contours within each slice then connect
    with triangles ( cf. topography map)
  • Create surfaces from cuberilles (voxels)
  • Ray casting to find the 3D surface
  • Use hue-lightness to shade surface
  • Use gradient to shade
  • Display density volumes

5
Related Work
  • Shortcomings of Existing Techniques
  • Throw away useful information in the original
    data
  • Cuberilles uses thresholding to represent
    surface
  • Ray casting uses depth shading alone or
    approximates shading using unnormalized gradient
  • Some lack hidden surface removal
  • Volume models display all values and rely on
    motion to produce a 3D sensation

6
Related Work
  • Benefits of Marching Cubes approach
  • Uses all information from source data
  • Derives inter-slice connectivity, surface
    location, and surface gradient
  • Result can be displayed on conventional graphics
    display systems using standard rendering
    algorithms

7
Information Flow
  • Information Flow for 3D Medical Algorithms
  • Data Acquisition collect a series of 2D slices
    of information
  • Image Processing find structures with 3D data or
    filter / bin data
  • Surface Construction Create surface model of
    voxels or polygons
  • Viewing Display Display the surface using ray
    casting, depth or color shading.

8
Algorithm Overview
  • The Marching Cubes Algorithm
  • Consists of 3 basic steps
  • Locate the surface corresponding to a
    user-specified value.
  • Create triangles.
  • Calculate normals to the surface at each vertex.

9
Step 1Surface Intersection
  • To locate the surface, it uses a logical cube
    created from eight pixels (Four each from 2
    adjacent layers)

10
Step 1 Surface Intersection
  • Binary vertex assignment (p (i, j, k) gt TU ? 1
    0)
  • Set cube vertex to value of 1 if the data value
    at that vertex exceeds (or equals) the value of
    the surface we are constructing
  • Otherwise, set cube vertex to 0
  • If a vertex 1 then it is inside the surface
  • If a vertex 0 then it is outside
  • Any cube with vertices of both types is
    intersected by the surface.

11
Step 2 Triangulation
  • For each cube, we have 8 vertices with 2 possible
    states each (inside or outside).
  • This gives us 28 possible patterns 256 cases.
  • Enumerate cases to create a LUT
  • Use symmetries to reduce problem from 256 to 15
    cases.

12
Step 2 Triangulation
  • Use vertex bit mask to create an index for each
    case based on the state of the vertexes.
  • Using the index to tell which edge the surface
    intersects, we can then can linearly interpolate
    the surface intersection along the edge.
  • In our previous example of green pixels, v0 and
    v3 were outside the surface and thus our index
    would 11110110 246

13
Step 3 Surface normals
  • To calculate surface normal, we need to determine
    gradient vector, g (derivative of the density
    function).
  • To estimate the gradient vector at the surface of
    interest, we first estimate the gradient vectors
    at the vertices and interpolate the gradient at
    the intersection.
  • The gradient at cube vertex (i , j, k), is
    estimated using central differences along the
    three coordinate axes by

D (i, j, k) is the density at pixel (i, j) in
slice k. ?x, ?y, ?z are lengths of the cube edges
14
Step 3 Surface normals
  • Dividing the gradient by its length produces the
    unit normal at the vertex required for rendering.
  • Then the algorithm linearly interpolates this
    normal to the point of intersection.

15
Algorithm Summary
  1. Scan 2 slices and create cube
  2. Calculate index for cube based on vertices
  3. Use index to lookup list of edges intersected
  4. Use densities to interpolate edge intersections
  5. Calculate unit normal at each edge vertex using
    central differences. Interpolate normal to each
    triangle vertex
  6. Output the triangle vertices and vertex normals
  7. March to next position and repeat.

16
Demo
  • Short Demo / tutorial
  • http//www.essi.fr/lingrand/MarchingCubes/applet.
    html

17
Enhancements
  • Efficiency
  • Take advantage of pixel-to-pixel, line-to-line,
    and slice-to-slice coherence by keeping previous
    calculations.
  • Functional
  • Added solid modeling capability
  • Boolean operations permit cutting and capping of
    solid models as well as multiple surface
    extraction.

18
Results
Bone Surface
Soft Tissue Surface
19
Results The Visible Human
Inside skeleton view
Torso / bowels
Images courtesy Marching Through the Visible
Man http//www.essi.fr/lingrand/MarchingCubes/a
ccueil.html)
20
Results The Visible Man
21
Results
Human brain surface reconstructed by using
marching cubes (128,984 vertices and 258,004
triangles
Magnified display of brain surface
Images courtesy IF of Polytech' Nice-Sophia
http//www.essi.fr/lingrand/MarchingCubes/accueil
.html)
22
Conclusion
  • Marching Cubes is an algorithm for 3D surface
    reconstruction well suited to series of 2D
    medical images (slices).
  • Algorithm summary ( 3 steps)
  • Locate the surface corresponding to a
    user-specified value using cube vertex tests
  • Create triangles based on vertex states of the
    cube
  • Calculate normals to the surface at each vertex.

23
Future Work
  • Dividing Cubes
  • An algorithm that generates points rather than
    triangles. As the resolution of the data
    increases, the number of triangles approaches the
    number of pixels.
  • Dual Marching Cubes
  • creates isosurfaces very similar to Marching
    cubes surfaces, but they are comprised of quad
    patches that eliminate some of the problems of
    poorly shaped triangles that can occur in this
    algorithm.

24
Evaluation
  • Advantages
  • Uses all information from source data
  • Derives inter-slice connectivity, surface
    location, and surface gradient
  • Result can be displayed on conventional graphics
    display systems using standard rendering
    algorithms
  • Allows Solid modeling capability ( cutting and
    capping)
  • Disadvantages
  • Requires user input
  • Mainly limited to medical images with clear
    contiguous intensity boundaries (constant
    density)
  • Is performing a modified form of thresholding.

25
References
  • W. Lorensen and H. Cline. Marching cubes A High
    Resolution 3D Surface Construction Algorithm,
    Proceedings of SIGGRAPH 1987, pages 163-169,
    1987.
  • The Visible Human http//www.nlm.nih.gov/research
    /visible/visible_human.html
  • Marching Cubes Demo/Tutorial http//www.essi.fr/
    lingrand/MarchingCubes/applet.html
  • Nielson, Gregory M. Dual Marching Cubes, IEEE
    Visualization archive
  • Proceedings of the conference on Visualization
    '04, Pages 489 - 496
Write a Comment
User Comments (0)
About PowerShow.com