1 / 49

# lecture 4 : Isosurface Extraction - PowerPoint PPT Presentation

lecture 4 : Isosurface Extraction. Isosurface Definition. Isosurface (i.e. Level Set ) : Constant density surface from a 3D array of data C(w) = { x | F(x) - w = 0 } ( w : isovalue , F(x) : real-valued function , usually 3D volume data ). isosurfacing. < ocean temperature function >.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'lecture 4 : Isosurface Extraction' - vida

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### lecture 4 : Isosurface Extraction

• Isosurface (i.e. Level Set ) :

• Constant density surface from a 3D array of data

• C(w) = { x | F(x) - w = 0 }

• ( w : isovalue , F(x) : real-valued function , usually 3D volume data )

isosurfacing

< ocean temperature function >

< two isosurfaces (blue,yellow) >

• Idea:

• create a triangular mesh that will approximate the iso-surface

• calculate the normals to the surface at each vertex of the triangle

• Algorithm:

• locate the surface in a cube of eight pixels

• calculate vertices/normals and connectivity

• march to the next cube

• [Lorensen and Cline, ACM SIGGRAPH ’87]

• Goal

• Input : 2D/3D/4D imaging data (scalar)

• Interactive parameter : isovalue selection

• Output : Isosurface triangulation

isosurfacing

2. Isocontouring [Lorensen and Cline87,…]

• Definition of isosurface C(w) of a scalar field F(x)

• C(w)={x|F(x)-w=0} , ( w is isovalue and x is domain R3 )

1.0

1.0

1.0

0.8

0.4

0.3

0.8

0.4

0.3

0.8

0.4

0.3

0.7

0.6

0.75

0.4

0.7

0.6

0.75

0.4

0.7

0.6

0.75

0.4

0.4

0.4

0.4

0.6

0.4

0.8

0.6

0.4

0.8

0.6

0.4

0.8

0.4

0.4

0.4

0.3

0.25

0.3

0.25

0.3

0.25

0.35

0.35

0.35

( Isocontour in 2D function: isovalue=0.5 )

• Marching Cubes for Isosurface Extraction

• Dividing the volume into a set of cubes

• For each cubes, triangulate it based on the 2^8(reduced to 15) cases

• assign ZERO to vertex outside the surface

• assign ONE to vertex inside the surface

• Note:

• Surface intersects those cube edges where one vertex is outside and the other inside the surface

• There are 2^2=256 ways the surface may intersect the cube

• Triangulate each case

• Note:

• using the symmetries reduces those 256 cases to 15 patterns

• Using symmetries reduces 256 cases into 15 cases

• Create an index for each case:

• Interpolate surface intersection along each edge

• Calculate normal for each cube vertex:

• Interpolate the normals at

the vertices of the triangles:

• Read four slices into memory

• Create a cube from four neighbors on one slice and four neighbors on the next slice

• Calculate an index for the cube

• Look up the list of edges from a pre-created table

• Find the surface intersection via linear interpolation

• Calculate a unit normal at each cube vertex and interpolate a normal to each triangle vertex

• Output the triangle vertices and vertex normals

• Trilinear Function

• Octree

• Interval Tree

• Seed Set and Contour Propagation

• How to handle large isosurfaces?

• Simplification

• Compression

• Parallel Extraction & Rendering

• How to choose isovalue?

• Contour Spectrum

• Interval Tree

• An ordered data structure that holds intervals

• Allows us to efficiently find all intervals that overlap with any given point (value) or interval

• Time Complexity of query processing : O (m + log n)

• Output-sensitive

• n : total # of intervals

• m : # of intervals that overlap (output)

• Time Complexity of tree construction : O (nlog n)

• How can we apply interval tree to efficient isocontouring?

• Main Idea

• Visit the only cells that intersect with isocontour

• Interval tree for entire data can be too large

• Use the idea of contour propagation

• Seed Set

• A set of cells intersecting every connected component of every isocontour

• Seed Set Generation : refer to Bajaj96 paper

• Algorithm

• Preprocessing

• Generate a seed set S from volume data

• Construct interval tree of seed set S

• Online processing

• Given a query isovalue w,

• Search for all seed cells that intersect with isocontour with isovalue w by traversing interval tree

• Perform contour propagation from the seed cells that were found from interval tree.

• Given an initial cell which contains the surface of interest

• The remainder of the surface can be efficiently traced performing a breadth-first search in the graph of cell adjacencies

< Contour Propagation >

Seed SetGeneration (k seeds from n cells)

• 238 seed cells

• 0.01 seconds

Responsibility Propagation

Range Sweep

Domain Sweep

O(n)

O(n)

O(n log n)

Time

O(k)

O(n)

O(k)

Space

?

2 kmin

?

k =

59 seed cells

1.02 seconds

177 seed cells

0.05 seconds

Test

Contour Tree generates

minimal seed set generation

• Definition : a tree with (V,E)

• Vertex ‘V’

• Critical Points(CP) (points where contour topology changes , gradient vanishes)

• Edge ‘E’:

• connecting CP where an infinite contour class is created and CP where the infinite contour class is destroyed.

• contour class : maximal set of continuous contours which don’t contain critical points

h(x,y)

y

x

• Height map of Vancouver

• Merge Join Tree and Split Tree to construct Contour Tree [Carr et al. 2010]

+

=

• Display of Level Sets Topology (Structural Information)

• Merge , Split , Create , Disappear , Genus Change (Betti number change)

• Minimal Seed Set Generation

• Contour Segmentation

• A point on any edge of CT corresponds to one contour component

• Different from isocontour extraction

• Divide contour extraction process into

• Propagation

• Iterative algorithm -> hard to optimize using GPU

• multi-threaded algorithm executed in multi-core CPU

• Triangulation

• CUDA implementation executed in many-core GPU

< performance of our hybrid parallel algorithm >

< propagation >

• Geometric Property as saliency level

• Mass Segmentation from Mammograms

• Minimum Nesting Depth (MND)

• Measured for each node of contour tree

• MND = min (depth from current node to terminal node of every subtree)

• High MND contour represents the boundaries of distinctive regions with abrupt intensity changes retaining the same topology

• Successfully applied to mass detection from 400 mammograms in USF database.

• How to select isovalue?

• Contour Spectrum

• [ Bajaj et al. VIS97 ]

• shows quantitative properties (area, volume, gradient) for all isovalues

• allows semi-automatic isovalue selection

• The contour spectrum allows the development of an adaptive ability to separate interesting isovalues from the others.

Contour Spectrum (CT scan of an engine)

• The contour spectrum allows the development of an adaptive ability to separate interesting isovalues from the others.

### Salient Contour Extraction Using Contour Tee

• Infinitely many isocontours defined in an image

• An isocontour may have many contours

• Contour

• Connected component of an isocontour

• Often represents an independent structure

Ex) mammogram (X-ray exam of female breast)

• Salient Contour Extraction

• Useful for segmentation, analysis and visualization of regions of interest

• Can be applied to CAD(Computer Aided Diagnosis) for detecting suspicious regions

breast boundary

pectoral muscle

dense tissue

mass (tumor)

dense tissue

<isocontour>

<ventricle contour>

<mass segmentation from breast MRI>

• Contour Tree

• Represents topological changes of contours according to isovalue change.

• Property

• structure (topology) of level sets

• contour extraction

• seed set generation for fast extraction

• Interactive Contour Tree Interface

• Performance Improvement of Extraction Process

• Utilizing Quantitative Information

• Development of Saliency Metric

• MND(Minimum Nesting Depth)

• Apply to medical images

• Different from isocontour extraction

• Divide contour extraction process into

• Propagation

• Iterative algorithm -> hard to optimize using GPU

• multi-threaded algorithm executed in multi-core CPU

• Triangulation

• CUDA implementation executed in many-core GPU

< performance of our hybrid parallel algorithm >

< propagation >

• Geometric Property as saliency level