Automatic Marching Cubes for Improving 3D Medical Images ...
Marching Cubes
description
Transcript of Marching Cubes
Marching Cubes
A High Resolution 3D Surface Construction Algorithm
Slice Data to Volumetric Data(1)
Slice Data to Volumetric Data(2)
Marching Cube Create cells (cubes) Classify each vertex Build an index Get edge list
Based on table look-up Interpolate triangle vertices Obtain polygon list and do shading in
image space
Cube
Consider a cube defined by 8 data values, 4 from slice k, and another 4 from slice k+1
Classify each vertex
Label 1 or 0 as to whether it lies inside or outside the surface
Match!!!
0
1
0
1
1
00
0
Build an indexCreate an index of 8 bits from the binary labeling of each vertex.
Get edge list
Give an index, store a list of edges.
Because symmetry : 256/2=128rotation : 128/8=16
256 cases are reduced to 14 cases.
Interpolate triangle vertices
X = i +
i i+1Xi i+1X
= 20
= 10
iso_value=18 iso_value=14
(iso_value - D(i))
(D(i+1) - D(i))
Problems about MC
Empty cells 30-70% of isosurface generation time wa
s spent in examining empty cells. Speed
Ambiguity
The Asymptotic Decider
Resolving the Ambiguity in Marching Cubes
Ambiguity Problem (1) Ambiguous Face : a face that has two diagonally o
ppsed points with the same sign
+
+
Ambiguity Problem (2) Certain Marching Cubes cases have more than
one possible triangulation.
Case 6 Case 3
Mismatch!!!
+
+
+
+
Hole!
Ambiguity Problem (3) To fix it …
Case 6 Case 3 B
Match!!!
+
+
+
+
The goal is to come up with a consistent triangulation
Asymptotic Decider (1) Based on bilinear interpolation over
faces
B01
B00 B10
B11
(s,t)
B(s,t) = (1-s, s) B00 B01B10 B11
1-t t
The contour curves of B:
{(s,t) | B(s,t) = } are hyperbolas
= B00(1- s)(1- t) + B10(s)(1- t) +
B01(1- s)(t) + B11(s)(t)
Asymptotic Decider (2)
(0,0)
(1,1)
Asymptote
(ST
If B(ST >=
(ST
Not Separated
Asymptotic Decider (3)
(1,1)
Asymptote
(ST
(0,0)
If B(ST <
(ST
Separated
Asymptotic Decider (4)
(S1 , 1)
(ST
(S0 , 0)
S B00 - B01 B00 + B11 – B01 – B10
T B00 – B10 B00 + B11 – B01 – B10
B(ST B00 B11 + B10 B01 B00 + B11 – B01 – B10
(0 , T0)
(1 , T1)
B( S) = B( S , 1)B( 0, T) = B( 1 , T)
Asymptotic Decider (5) case 3, 6, 12, 10, 7, 13
(These are the cases with at least one ambiguious faces)