volume graphics (lecture 5 : contour tree / contour spectrum) lecture notes acknowledgement : j....

Post on 15-Dec-2015

216 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Volume Graphics(lecture 5 : Contour Tree / Contour Spectrum)

lecture notes acknowledgement : J. Snoeyink, C. Bajaj

Bong-Soo Sohn

School of Computer Science and Engineering

Chung-Ang University

Contour Tree

h(x,y)

x

y

• 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

Properties• 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

Contour tree

20

25

0

2520

0

Optimal Single-Resolution Isocontouring

Copyright: Chandrajit Bajaj, CCV, University of Texas at Austin

Minimal Seed Set Contour Tree

f

Optimal Single-Resolution Isocontouring

Copyright: Chandrajit Bajaj, CCV, University of Texas at Austin

Minimal Seed SetContour Tree(local minima)

f

Optimal Single-Resolution Isocontouring

Copyright: Chandrajit Bajaj, CCV, University of Texas at Austin

Minimal Seed SetContour Tree

(local maxima)

f

Optimal Single-Resolution Isocontouring

Copyright: Chandrajit Bajaj, CCV, University of Texas at Austin

Minimal Seed Set Contour Tree

fEach seed cell corresponds to a monotonic

path on the contour treeEach seed cell corresponds to a monotonic

path on the contour tree

Optimal Single-Resolution Isocontouring

Copyright: Chandrajit Bajaj, CCV, University of Texas at Austin

Minimal Seed Set Contour Tree

f

For a minimal seed set each seed cell corresponds to a path that is not covered by

any over seed cell

For a minimal seed set each seed cell corresponds to a path that is not covered by

any over seed cell

Optimal Single-Resolution Isocontouring

Copyright: Chandrajit Bajaj, CCV, University of Texas at Austin

Minimal Seed Set Contour Tree

f

Current isovalue

Each connected component of any isocontour corresponds exactly to one

point of the contour tree

Each connected component of any isocontour corresponds exactly to one

point of the contour tree

Optimal Single-Resolution Isocontouring

Copyright: Chandrajit Bajaj, CCV, University of Texas at Austin

Range sweep

Optimal Single-Resolution Isocontouring

Evolution of level sets

• Watch contours of L(v) as v increases

Evolution of level sets

7 89

10

56

4

3

12

Contour tree

Evolution of level sets

7 89

10

56

4

3

12

Contour tree

Evolution of level sets

7 89

10

56

4

3

12

Contour tree

Evolution of level sets

7 89

10

56

4

3

12

Contour tree

Evolution of level sets

7 89

10

56

4

3

12

Contour tree

Evolution of level sets

Contours appear, merge, split, & vanish

7 89

10

56

4

3

12

Contour tree

Morse theory & Contour trees

• Karron et al 95, digital Morse theory• Bajaj et al 97–99, seed sets• Van Kreveld et al 97, 2-D contour tree• Tarasov & Vyalyi 98, 3-D contour tree

How to compute contour trees without sweeping all level sets

• Build join and split trees

• Merge to form contour tree

• Works in all dimensions...

The join tree

• Represents set {p | f(p) >= x}

• Can be computed w/out the surface of the level set.

7 89

10

56

4

1

Join tree construction

• Sort data by value

• Maintain union/find for comp. of {p | f(p) >= x}

7 89

10

56

4

Union/Find

• Data structure for integers 1..n supporting:

– Initialize() each integer starts in its own group• for i = 1..n, g(i) = i;

– Union(i,j) union groups of i and j• g(Find(i)) = Find(j);

– Find(i) return name of group containing i• group = i; • while group != g(group), group = g(group); // find group• while i != group,

{nx = g(i), g(i) = group, i = nx} // compress path

• Does n union/finds in O(n a(n)) steps [T72]

Join tree construction

• Sort data by value

• Maintain union/find for comp. of {p | f(p) >= x}

• O(n+ t·α(t) ) after sort

7 89

10

56

4

1

The split tree

10

3

12

• Represents the set {p | f(p) <= x}

• Reverse join tree computation

Merge join and split trees

10

3

12

7 89

10

56

4

1

7 89

10

56

4

3

12

Merge join and split trees

• Algorithm

1. Add nodes from other tree

• Nodes have correct up degree in join & down degree in the split tree.

7 89

10

56

4

1

7 89

10

56

4

3

12

3

2

2. Identify leaves

• A leaf in one tree, with up/down degree < 1 in other tree

7 89

10

56

4

1

7 89

10

56

4

3

12

3

2

3. Add to contour tree

• A leaf in one tree, with up/down degree < 1 in other tree

7 89

10

56

4

1

7 89

10

56

4

3

1

33

2

3. Add to contour tree

7 89

10

56

4

1

7 89

10

56

4

3

1

33

2

3. Add to contour tree

7 89

10

56

4

7 89

10

56

4

3

1

33

2

3. Add to contour tree

• Note that 4 is not a leaf

7 89

10

56

4

7 89

10

56

4

1

3

2

4

3. Add to contour tree

• The merge time is proportional to the tree size; much smaller than the data

89

10

56

4

89

10

56

4

1

3

2

4

7

5

4. Ends with Contour tree

7 89

10

56

4

3

12

Advantages

• Doesn’t need the surface structure to build the contour tree.

• The merge becomes simple, and works on a subset of the points

• The tree structure can advise where to choose the threshold value

• Can cut diff. branches at diff. values.

Flexible contouring

• Threshold diff. areas at diff. values

Flexible contouring

• Threshold diff. areas at diff. Values

• Guided by the Contour Tree

7 89

10

56

4

3

12

Contour Spectrum

• User Interface

• Signature Computation

• Real Time Quantitative Queries

• Topological Information

• Semi-Automatic Isovalue Selection

Input 3D Fuction

• Consider a terrain of which you want to compute the length of each isocontour and the area contained inside each isocontour.

Contour Spectrum :GUI for static data

• Plot of a set of signatures (length, area, gradient ...) as functions of the scalar value .

Contour Spectrum :GUI for time-varying data

(,t ) --> c

The color c is mapped to the magnitude of a signature function of time t and isovalue low

high

mag

nitu

de

Isovalue Selection

Copyright: Chandrajit Bajaj, CCV, University of Texas at Austin

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

Signature Computation

– The length of each contour is a c0 spline function.

The area inside/outside each

isocontour is a C1 spline function.

Signature Computation

• In general the size of each isocontour of a scalar field of dimension d is a spline function of d-2 continuity.

• The size of the region inside/outside is given by a spline function of d-1 continuity

top related