contour trees n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Contour Trees PowerPoint Presentation
Download Presentation
Contour Trees

Loading in 2 Seconds...

play fullscreen
1 / 24

Contour Trees - PowerPoint PPT Presentation


  • 137 Views
  • Uploaded on

Contour Trees. CSE 788.14 Han-Wei Shen. Level Sets. Level set: Level sets is also called Isolines for n =2, isosurface for n =3, or isocontours in general We can use the Marching Cubes algorithm to extract isosurfaces from a 3D scalar field . +. +. +. +. -. +. –.

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

PowerPoint Slideshow about 'Contour Trees' - nerys


Download Now An Image/Link below is provided (as is) to download presentation

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
contour trees

Contour Trees

CSE 788.14

Han-Wei Shen

level sets
Level Sets
  • Level set:
  • Level sets is also called Isolines for n=2, isosurface for n=3, or isocontours in general
  • We can use the Marching Cubes algorithm to extract isosurfaces from a 3D scalar field

+

+

+

+

-

+

evolution of level sets
Evolution of Level Sets
  • We can watch the level set evolves as we change the contour value (isovalue) c
contour trees1
Contour Trees
  • A graph-based representation to illustrate how the topology of level set changes with the scalar values
  • Each leaf node represents the
  • creation or deletion of a component
  • Each interior vertex represents the
  • joining and/or splitting of two or more
  • components
  • Each edge represents a component in
  • the level sets for all values between the
  • values at each end of the edge

10

9

8

7

6

5

Supernode

Superarc

4

3

2

1

evolution of level sets1
Evolution of level sets

Contour tree

10

9

8

7

6

5

4

3

2

1

evolution of level sets2
Evolution of level sets

Contour tree

10

9

8

7

6

5

4

3

2

1

evolution of level sets3
Evolution of level sets

Contour tree

10

9

8

7

6

5

4

3

2

1

evolution of level sets4
Evolution of level sets

Contour tree

10

9

8

7

6

5

4

3

2

1

evolution of level sets5
Evolution of level sets

Contour tree

10

9

8

7

6

5

4

Contours appear, merge, split, & vanish

3

2

1

topological events
Topological Events
  • The level set topology changes only at critical points

Examples of 2D critical points

topological events on a mesh
Topological Events on a Mesh

Critical Point Extraction

Minus sequence

Plus sequence

pass

peak

pit

extracting contour trees
Extracting Contour Trees
  • General approach
      • Sort the scalar values at all the vertices and store into an event queue (a heap for example)
      • Scan the value C from max. to min. values in the domain
      • Track cells that are active
        • The range of the cell contains the current scalar value
      • Assign cells into one of the current components (superarcs)
      • Merge or split components at the critical topological events (local min/max and saddles)
  • Use Union-Find to implement the components merge/split
slide13

Union/Find

1 2 3 4 . . . 42 . . . n

  • 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
  • Doesnunion/finds inO(na(n)) steps
evolution of contour trees
Evolution of Contour Trees
  • At a local maximum:
    • a new component is born.
    • Creating a new supernode and superarc
    • Every cell incident to the local maximum vertex becomes active
    • Those cells will point to the new superarc
      • Point to the component name, which will in turn point to the superarc of the contour tree
    • Name the new component/superarc as Ca
evolution of contour tree
Evolution of Contour Tree
  • At a local minimum:
    • An existing component is destroyed
    • A new supernode is created
    • The end of a superarc
    • The cells incident to the local minimum are no longer active
evolution of contour tree1
Evolution of Contour Tree
  • At a saddle point:
    • (1) Two or more components merge into one, or (2) one component splits into two or more
    • need to determine which type is encountered by traversing the contours
    • Case (1): a new supernode is created; make the two/more superarcs incident to the supernode; point the still active cells to the new superarc
    • Case (2): similar but reversed actions
creation of contour trees using join split trees
Creation of Contour Trees using Join/Split Trees
  • Scan the data set twice: once to create the join tree, and the other pass to create the split tree
  • The Join tree has the correct down degree; and the split tree has the correct up degree
  • Merge the join and split trees together into a contour tree
join split trees contour tree
Join + Split Trees = Contour Tree

10

10

10

9

9

8

7

8

7

6

6

5

5

4

4

3

3

2

2

1

1

1

Split Tree

Join Tree

Contour Tree

join tree
Join Tree
  • A join tree is made of join components
  • A join component is a connected component of the set:

Root: the entire domain

10

Merge of two or more components

3

2

Local minimum

1

split tree
Split Tree
  • Obtained from a similar method used to construct the join tree by decreasing the parameter x:

10

9

8

7

6

5

4

Split into one or more nodes

Root: the entire domain

1

join and split trees
Join and Split Trees
  • Each node in the join or split tree is a node in the contour tree
  • Each edge in the join or split tree represents a union of components from the contour tree
  • For a node in the join (split) tree that is not in the other tree, the join (split) edge incident to this node is a single component of the contour tree
merge join and split trees
Merge Join and Split Trees
  • Remember: join tree only captures the merge of components, and split tree only captures the split of components as we increase the contour value
  • The down degree of the node in the join tree is correct, and the up degree of the node in the split tree is correct
  • Based on the above principles, we can design a merge algorithm
merge algorithm
Merge Algorithm
  • Remove a non-root leaf node JT or ST that is not a split/join node of the other tree
    • Assume a leaf v of JT is chosen
  • Move v and its incident edge from JT to CT
  • If v is a node of degree 2 in ST, don’t move it
  • If v is a root of ST, delete v from the ST and restore the tree
  • Do the above inductively
example on carr s paper
Example on Carr’s paper

Contour tree

10

9

8

7

6

5

4

3

2

1