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.

Slides:



Advertisements
Similar presentations
Lecture 15. Graph Algorithms
Advertisements

Advanced Iso-Surfacing Algorithms Jian Huang, CS594, Spring 2002 This set of slides are developed and used by Prof. Han-Wei Shen at Ohio State University.
Volume Graphics (lecture 5 : Contour Tree / Contour Spectrum) lecture notes acknowledgement : J. Snoeyink, C. Bajaj Bong-Soo Sohn School of Computer Science.
CS Section 600 CS Section 002 Dr. Angela Guercio Spring 2010.
Isocontour/surface Extractions 2D Isocontour 3D Isosurface.
Electron denisty, isosurfaces and contour trees Jack Snoeyink GCMB’07.
Contour Tree and Small Seed Sets for Isosurface Traversal Marc van Kreveld Rene van Oostrum Chandrajit Bajaj Valerio Pascucci Daniel R. Schikore.
I/O-Efficient Batched Union-Find and Its Applications to Terrain Analysis Pankaj K. Agarwal, Lars Arge, Ke Yi Duke University University of Aarhus.
Implementation of Graph Decomposition and Recursive Closures Graph Decomposition and Recursive Closures was published in 2003 by Professor Chen. The project.
lecture 4 : Isosurface Extraction
Disjoint Union / Find CSE 373 Data Structures Lecture 17.
Dynamic Sets and Data Structures Over the course of an algorithm’s execution, an algorithm may maintain a dynamic set of objects The algorithm will perform.
I/O-Efficient Batched Union-Find and Its Applications to Terrain Analysis Pankaj K. Agarwal, Lars Arge, and Ke Yi Duke University University of Aarhus.
Fast Isocontouring For Improved Interactivity Chandrajit L. Bajaj Valerio Pascucci Daniel R. Schikore.
Greedy Algorithms Like dynamic programming algorithms, greedy algorithms are usually designed to solve optimization problems Unlike dynamic programming.
1 CSE 417: Algorithms and Computational Complexity Winter 2001 Lecture 11 Instructor: Paul Beame.
More Graph Algorithms Weiss ch Exercise: MST idea from yesterday Alternative minimum spanning tree algorithm idea Idea: Look at smallest edge not.
Heaps and heapsort COMP171 Fall 2005 Part 2. Sorting III / Slide 2 Heap: array implementation Is it a good idea to store arbitrary.
Heapsort CIS 606 Spring Overview Heapsort – O(n lg n) worst case—like merge sort. – Sorts in place—like insertion sort. – Combines the best of both.
Isosurface Extractions 2D Isocontour 3D Isosurface.
Data Structures and Algorithms Graphs Minimum Spanning Tree PLSD210.
MA/CSSE 473 Day 36 Kruskal proof recap Prim Data Structures and detailed algorithm.
Spring 2015 Lecture 11: Minimum Spanning Trees
0 Course Outline n Introduction and Algorithm Analysis (Ch. 2) n Hash Tables: dictionary data structure (Ch. 5) n Heaps: priority queue data structures.
“On an Algorithm of Zemlyachenko for Subtree Isomorphism” Yefim Dinitz, Alon Itai, Michael Rodeh (1998) Presented by: Masha Igra, Merav Bukra.
Heaps, Heapsort, Priority Queues. Sorting So Far Heap: Data structure and associated algorithms, Not garbage collection context.
CS 473Lecture X1 CS473-Algorithms Lecture BINOMIAL HEAPS.
I/O-Efficient Batched Union-Find and Its Applications to Terrain Analysis Pankaj K. Agarwal, Lars Arge, Ke Yi Duke University University of Aarhus.
CSE554ContouringSlide 1 CSE 554 Lecture 4: Contouring Fall 2015.
Runtime O(VE), for +/- edges, Detects existence of neg. loops
Hank Childs, University of Oregon Isosurfacing (Part 3)
Union & Find Problem 황승원 Fall 2010 CSE, POSTECH 2 2 Union-Find Problem Given a set {1, 2, …, n} of n elements. Initially each element is in a different.
Data Structure II So Pak Yeung Outline Review  Array  Sorted Array  Linked List Binary Search Tree Heap Hash Table.
Union-Find  Application in Kruskal’s Algorithm  Optimizing Union and Find Methods.
MA/CSSE 473 Days Answers to student questions Prim's Algorithm details and data structures Kruskal details.
Introduction Terrain Level set and Contour tree Problem Maintaining the contour tree of a terrain under the following operation: ChangeHeight(v, r) : Change.
Trees Thm 2.1. (Cayley 1889) There are nn-2 different labeled trees
Lecture 3 : Isosurface Extraction. Isosurface Definition  Isosurface (i.e. Level Set ) :  Constant density surface from a 3D array of data  C(w) =
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2015.
CSE554Contouring IISlide 1 CSE 554 Lecture 3: Contouring II Fall 2011.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2013.
1 Assignment #3 is posted: Due Thursday Nov. 15 at the beginning of class. Make sure you are also working on your projects. Come see me if you are unsure.
Graphs Definition: a graph is an abstract representation of a set of objects where some pairs of the objects are connected by links. The interconnected.
Graphs + Shortest Paths David Kauchak cs302 Spring 2013.
ACM-GIS Morphology-Driven Simplification and Multiresolution Modeling of Terrains Emanuele Danovaro, Leila De Floriani, Paola Magillo, Mohammed.
Lecture 12 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
CSE 589 Applied Algorithms Spring 1999 Prim’s Algorithm for MST Load Balance Spanning Tree Hamiltonian Path.
Code: BCA302 Data Structures with C Prof. (Dr.) Monalisa Banerjee By.
Trees.
CSE 554 Lecture 5: Contouring (faster)
MA/CSSE 473 Day 36 Student Questions More on Minimal Spanning Trees
Isosurface Extractions (II)
CSE 2331/5331 Topic 9: Basic Graph Alg.
Lecture 12 Algorithm Analysis
Greedy Algorithms / Minimum Spanning Tree Yin Tat Lee
Chapter 5. Optimal Matchings
Topological Sort (topological order)
Graph Algorithm.
Minimum Spanning Tree.
CS200: Algorithm Analysis
ICS 353: Design and Analysis of Algorithms
Lecture 12 Algorithm Analysis
ICS 353: Design and Analysis of Algorithms
Minimum Spanning Tree.
Autumn 2016 Lecture 10 Minimum Spanning Trees
The Minimum Cost Spanning Tree Problem
Lecture 12 Algorithm Analysis
CSE 332: Minimum Spanning Trees
Heaps Chapter 6 Section 6.9.
Presentation transcript:

Contour Trees CSE 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 – -

Evolution of Level Sets We can watch the level set evolves as we change the contour value (isovalue) c

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 Supernode Superarc

Evolution of level sets Contour tree

Evolution of level sets Contour tree

Evolution of level sets Contour tree

Evolution of level sets Contour tree

Evolution of level sets Contours appear, merge, split, & vanish Contour tree

Topological Events The level set topology changes only at critical points Examples of 2D critical points

Topological Events on a Mesh Critical Point Extraction Minus sequence Plus sequence peak pass pit

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

Union/Find 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 n Does n union/finds in O(n a(n)) steps n

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 C a

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 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 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 Split TreeJoin TreeContour 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 Merge of two or more components Local minimum

Split Tree Obtained from a similar method used to construct the join tree by decreasing the parameter x: Root: the entire domain Split into one or more nodes

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 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 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 Contour tree