Title: Reconstruction from Voxels (GATE-540)
1Reconstruction from Voxels(GATE-540)
Dr.Çagatay ÜNDEGER Instructor Middle East
Technical University, GameTechnologies General
Manager SimBT Inc. e-mail cagatay_at_undeger.com
Reference William E. Lorensen and Harvey E. Cline
Game Technologies Program Middle East Technical
University Spring 2010
2Outline
3Goals
- Develop 3D Analysis Algorithms
- Reconstruction
- Segmentation
- Feature Detection
- Labeling
- Matching
- Classification
- Retrielval
- Recognition
- Clustering
4Voxel
- A voxel (volumetric pixel)
- A volume element, representing a value on a
regular grid in three dimensional space. - Analogous to a pixel, which represents 2D image
data in a bitmap
5Voxel Data
- Do not typically have their position (their
coordinates) explicitly encoded along with their
values. - Stores
- Binary data
- empty / full
- Float data
- density / color / distance to surface
6Voxel vs Polygon
- Polygons
- Often explicitly represented by the coordinates
of their vertices. - Able to efficiently represent simple 3D
structures with lots of empty or
homogeneously-filled space. - Voxels
- Good at representing regularly-sampled spaces
that are non-homogeneously filled. - Have a limited resolution, as precise data is
only available at the center of each cell.
7Usage of Voxel
- Frequently used in the visualization and analysis
of medical and scientific data. - Some volumetric displays use voxels to visualize
models and describe their resolution in 3D
dimension (512512256 voxels).
8Usage of Voxel
- In games and simulations,
- Used for representation of terrain containing
overhangs and caves. - Concave features cannot be represented by
heightmaps.
9Visualizing Voxels
- Visualization
- Direct volume rendering
- Extraction of polygon iso-surfaces which follow
the contours of given threshold values. - The marching cubes algorithm is often used for
iso-surface extraction.
10Iso-Surface
- A three-dimensional analog of an iso-contour.
- A surface that represents points of a constant
value (e.g. pressure, temperature, velocity,
density) within a volume of space.
Iso-surface
11Marching Cubes
- Marching Cubes is an algorithm which creates
triangle models of constant density surfaces
(iso-surfaces) from 3D medical data.
12Medical Data Acquisition
- Computed Tomography (CT)
- Magnetic Resonance (MR) Imagining (MRI)
- Single-Photon Emission Computed Tomography
(SPECT) - Each scanning process results in two dimensional
slices of data.
13Data Slices
14Marching Cubes Extraction
- Extracts surfaces from adjacent pairs of data
slices using cubes. - Cubes march through the pair of slices until
the entire surface of both slices has been
examined.
15Marching Cubes Overview
- Load slices.
- Create a cube from pixels on adjacent slices.
- Find vertices on the surfaces.
- Determine the intersection edges.
- Interpolate the edge intersections.
- Calculate vertex normals.
- Output triangles and normals.
16How Are Cubes Constructed
- Uses identical squares of four pixels connected
between adjacent slices. - Each cube vertex is examined to see if it lies
on or off the surface.
17How Are The Cubes Used
- Pixels on the slice surfaces determine 3D
surfaces. - 256 surface permutations, but only 15 unique
patterns. - A normal is calculated for each triangle vertex
for rendering.
1815 Unique Patterns
19Triangle Creation
- Determine triangles contained by a cube.
- Determine which cube edges are intersected.
- Interpolate intersection point using pixel
density. - Calculate unit normals for each triangle vertex
using the gradient vector.
20Determining Triangles
- An index to a pre-calculated array of 256
possible polygon configurations (28 256) within
the cube - Treat each of the 8 scalar values (cube corners)
as a bit in an 8-bit integer. - 8 scalars (8 bits) determine the actual index to
the polygon configuration array.
21Determining Inside/Outside
- Select a iso-value that the surface will pass
through. - If the scalar's value is higher than the
iso-value then - The appropriate bit is set to one (inside)
- If it is lower then
- The appropriate bit is set to zero (outside)
iso-value 0.3
22Determining Intersections
- Determine intersection points to iso-suface by
interpolation.
iso-value 0.3
23Determining Intersections
- Gradient of the scalar field at each grid point
is also the normal vector of a hypothetical
iso-surface passing from that point.
24Determining Intersections
- Interpolate these normals along the edges of each
cube to find the normals of the generated
vertices.
N
N
25Grid Resolution
- Variations can increase/decrease surface density.
26Examples
27Marching Squares
- 2D version of Marching Cubes
- Aims at drawing lines between interpolated values
along the edges of a square considering given
weights of the corners and a reference value.
28Conclusion
- Marching Squires / Marching Cubes provides a
simple algorithm to translate a series of 2D
medical scans into 2D / 3D objects.