CSE 554 Lecture 4 Contouring Fall 2016 CSE
- Slides: 40
CSE 554 Lecture 4: Contouring Fall 2016 CSE 554 Contouring Slide 1
Review • Binary pictures – Pros: natural geometric form for bio-medical data; easy to operate on – Cons: • Blocky boundary • Large memory footprint CSE 554 Contouring Slide 2
Geometric Forms Curves Surfaces • Continuous forms – Defined by mathematical functions – E. g. : parabolas, splines, subdivision surfaces • Discrete forms – Disjoint elements with connectivity Polyline relations Triangle surfaces – E. g. : polylines, triangle surfaces, pixels and voxels Pixels CSE 554 Contouring Voxels Slide 3
Boundary Representations • Polylines (2 D) or meshes (3 D) that tile the object boundary – Smoother appearance – Less storage (no interior elements) Binary picture CSE 554 Contouring Boundary mesh Slide 4
Boundary Representations • We will cover (in a sequence of lectures): – Extracting a boundary from a grayscale image (volume) – Denoising and simplification – Alignment and deformation CSE 554 Contouring Slide 5
Thresholding - Revisited • Creates a binary picture from a grayscale image • How to define a smooth boundary at the threshold? – Such boundary is known as a contour (or iso-curve, iso-surface, etc. ) Grayscale image CSE 554 Thresholded binary picture Contouring Boundary curve Slide 6
Definition • Given a continuous function f defined over the space, • A contour at iso-value c is the set of all points where f evaluates to be c CSE 554 Contouring Slide 7
Examples • Contours of 2 D functions (iso-curves) CSE 554 Contouring Slide 8
Examples • Contours of 3 D functions (iso-surfaces) CSE 554 Contouring Slide 9
Contour Properties • Closed – With a well-defined inside and outside • Inside: points above the iso-value • Outside: points below the iso-value • In general, a manifold – A non-degenerate curve (surface) without branching or boundaries • Except at critical points (local maxima, minima, saddle) • Orthogonal to gradient directions – Critical points: where gradient is zero CSE 554 Contouring Black curves: contours at multiple iso-values Green dots: critical points Red arrows: gradient directions Slide 10
Discrete Iso-contours • Consider an image as a sampling of some continuous function f – We seek discrete approximations of the continuous contours of f f(x, y) y x CSE 554 Contouring Slide 11
“Good” Approximations • Closed (with inside and outside) – Polyline: a vertex is shared by even # of edges Closed Manifold Non-intersecting – Mesh: an edge is shared by even # of polygons • Manifold – Polyline: a vertex is shared by 2 edges Open Non-manifold Non-intersecting – Mesh: an edge is shared by 2 polygons, and a vertex is contained in a ring of polygons • Non-intersecting Closed Non-manifold Non-intersecting Closed Manifold Intersecting CSE 554 Contouring Slide 12
“Good” Approximations • Closed (with inside and outside) – Polyline: a vertex is shared by even # of edges – Mesh: an edge is shared by even # of polygons • Manifold – Polyline: a vertex is shared by 2 edges – Mesh: an edge is shared by 2 polygons, and a vertex is contained in a ring of polygons • Non-intersecting CSE 554 A closed, manifold, non-intersecting triangular mesh Contouring Slide 13
“Good” Approximations • Closed (with inside and outside) – Polyline: a vertex is shared by even # of edges – Mesh: an edge is shared by even # of polygons • Manifold – Polyline: a vertex is shared by 2 edges – Mesh: an edge is shared by 2 polygons, and a vertex is contained in a ring of polygons • Non-intersecting CSE 554 A closed, manifold, non-intersecting triangular mesh Contouring Slide 14
Contouring (On A Grid) • Input Grid point (pixel) – A grid where each grid point (pixel or voxel) has a value (color) Grid edge – An iso-value (threshold) Grid cell • Output – A closed, manifold, nonintersecting polyline (2 D) or mesh (3 D) that separates grid points above the iso-value from those that are below the iso-value. CSE 554 Contouring Iso-value = Slide 15
Contouring (On A Grid) • Input – A grid where each grid point (pixel or voxel) has a value (color) – An iso-value (threshold) • Output – Equivalently, we extract the zerocontour (separating negative from positive) after subtracting the isovalue from the grid points Iso-value = 0 negative CSE 554 Contouring positive Slide 16
Algorithms • Primal methods – Marching Squares (2 D), Marching Cubes (3 D) – Placing vertices on grid edges • Dual methods – Dual Contouring (2 D, 3 D) – Placing vertices in grid cells CSE 554 Contouring Slide 17
Marching Squares (2 D) • For each grid cell with a sign change – Create one vertex on each grid edge with a sign change – Connect vertices by lines CSE 554 Contouring Slide 18
Marching Squares (2 D) • For each grid cell with a sign change – Create one vertex on each grid edge with a sign change – Connect vertices by lines CSE 554 Contouring Slide 19
Marching Squares (2 D) • Creating vertices: linear interpolation – Assuming the underlying, continuous function is linear on the grid edge – Linearly interpolate the positions of the two grid points f 1 >0 f + 0 t {x 0, y 0} 1 -t {x, y} {x 1, y 1 } - f 0 <0 CSE 554 Contouring Slide 20
Marching Squares (2 D) • For each grid cell with a sign change – Create one vertex on each grid edge with a sign change – Connect vertices by lines CSE 554 Contouring Slide 21
Marching Squares (2 D) • Connecting vertices by lines 1 1 – Lines shouldn’t intersect 2 4 Key: 0 0 0 1 3 – Each vertex is used once • So that it will be used exactly twice by the two cells incident on the edge 3 Data: {{2, 4}} 2 4 • Two approaches Key: 0 0 1 1 – Do a walk around the grid cell Data: {{3, 4}} • Connect consecutive pair of vertices – Or, using a pre-computed look-up table • 2^4=16 sign configurations • For each sign configuration, it stores the indices of the grid edges whose vertices make up the lines. CSE 554 Contouring Key: 1 0 0 1 Data: {{1, 3}, {2, 4}} Slide 22
Marching Cubes (3 D) • For each grid cell with a sign change – Create one vertex on each grid edge with a sign change (using linear interpolation) – Connect vertices into triangles CSE 554 Contouring Slide 23
Marching Cubes (3 D) • For each grid cell with a sign change – Create one vertex on each grid edge with a sign change (using linear interpolation) – Connect vertices into triangles CSE 554 Contouring Slide 24
Marching Cubes (3 D) • Connecting vertices by triangles – Triangles shouldn’t intersect – To be a closed manifold: • Each vertex used by a triangle “fan” • Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) CSE 554 Contouring Slide 25
Marching Cubes (3 D) • Connecting vertices by triangles – Triangles shouldn’t intersect – To be a closed manifold: • Each vertex used by a triangle “fan” • Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) CSE 554 Contouring Slide 26
Marching Cubes (3 D) • Connecting vertices by triangles – Triangles shouldn’t intersect – To be a closed manifold: • Each vertex used by a triangle “fan” • Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) Open mesh: each magenta edge is shared by one triangle CSE 554 Contouring Slide 27
Marching Cubes (3 D) • Connecting vertices by triangles – Triangles shouldn’t intersect – To be a closed manifold: • Each vertex used by a triangle “fan” • Each mesh edge used by 2 triangles (if inside grid cell) or 1 triangle (if on a grid face) • Each mesh edge on the grid face is shared between adjacent cells Closed mesh: each edge is shared by two triangles CSE 554 Contouring Slide 28
Marching Cubes (3 D) • Connecting vertices by triangles – Triangles shouldn’t intersect 4 – To be a closed manifold: • Each vertex used by a triangle “fan” 2 8 8 12 3 9 inside grid cell) or 1 triangle (if on a grid face) shared between adjacent cells 10 2 6 • Each mesh edge used by 2 triangles (if • Each mesh edge on the grid face is 4 7 3 5 7 1 1 6 11 5 • Look-up table – 2^8=256 sign configurations – For each sign configuration, it stores Sign: “ 0 0 0 1 0 0” Triangles: {{2, 8, 11}, {4, 7, 10}} indices of the grid edges whose vertices make up the triangles CSE 554 Contouring Slide 29
Implementation Notes • Avoid computing one vertex multiple times – Compute the vertex location once, and store it in a hash table • When the grid point’s value is same as the iso-value – Treat it either as “above” or “below”, but be consistent. CSE 554 Contouring Slide 30
Algorithms • Primal methods – Marching Squares (2 D), Marching Cubes (3 D) – Placing vertices on grid edges • Dual methods – Dual Contouring (2 D, 3 D) – Placing vertices in grid cells CSE 554 Contouring Slide 31
Dual Contouring (2 D) • For each grid cell with a sign change – Create one vertex • For each grid edge with a sign change – Connect the two vertices in the adjacent cells with a line segment CSE 554 Contouring Slide 32
Dual Contouring (2 D) • For each grid cell with a sign change – Create one vertex • For each grid edge with a sign change – Connect the two vertices in the adjacent cells with a line segment CSE 554 Contouring Slide 33
Dual Contouring (2 D) • Creating the vertex within a cell – Compute one point on each grid edge with a sign change (by linear interpolation) • There could be more than two sign-changing edges, so >2 points possible – Take the centroid of these points CSE 554 Contouring Slide 34
Dual Contouring (3 D) • For each grid cell with a sign change – Create one vertex (same way as 2 D) • For each grid edge with a sign change – Create a quad (or two triangles) connecting the four vertices in the adjacent grid cubes – No look-up table is needed! CSE 554 Contouring Slide 35
Dual Contouring: Discussion • Closed – Each mesh edge is shared by even number of quads • Possibly non-manifold – An edge may be shared by 4 quads Red edge is shared by 2 quads Red edge is shared by 4 quads (non-manifold) – A vertex may be shared by 2 rings of quads • Can be fixed – But with more effort (e. g. , multiple vertices per cell) CSE 554 Center vertex is nonmanifold Contouring Slide 36
Duality • The two outputs have a dual structure – Vertices and quads of Dual Contouring correspond (roughly) to untriangulated polygons and vertices produced by Marching Cubes CSE 554 Dual Contouring Slide 37
Primal vs. Dual • Marching Cubes – Always manifold – Requires look-up table in 3 D – Often generates thin and tiny polygons Marching Cubes • Dual Contouring – Can be non-manifold – No look-up table needed – Generates better-shaped polygons Dual Contouring CSE 554 Contouring Slide 38
Primal vs. Dual • Marching Cubes – Always manifold – Requires look-up table in 3 D – Often generates thin and tiny polygons – Restricted to uniform grids DC on a Quadtree (2 D) • Dual Contouring – Can be non-manifold – No look-up table needed – Generates better-shaped polygons – Can be applied to any type of grid CSE 554 Contouring DC on uniform grid DC on octree (3 D) Slide 39
Further Readings • Marching Cubes: • “Marching cubes: A high resolution 3 D surface construction algorithm”, by Lorensen and Cline (1987) – >11000 citations on Google Scholar • “A survey of the marching cubes algorithm”, by Newman and Yi (2006) • Dual Contouring: • “Dual contouring of hermite data”, by Ju et al. (2002) – >500 citations on Google Scholar • “Manifold dual contouring”, by Schaefer et al. (2007) CSE 554 Contouring Slide 40
- En 554
- 554 romeinse cijfers
- Ece 554 uw madison
- Pivot method of dart manipulation
- Chapter 24 facial makeup
- Steps of image processing
- Contour leveling
- 01:640:244 lecture notes - lecture 15: plat, idah, farad
- Free fall 2016
- Junior doctor contract 2016
- Portaria interministerial nº 424, de 30 dedezembro de 2016
- Widows and orphans word 2016
- New zealand holiday 2016
- Forrester wave email marketing vendors 2017
- 2016
- Afs 2016:3
- Apes frq 2016
- Cad 2016
- Grant showplan
- Outlook ordnerbereich anpassen
- Zpg biologie 2016
- 2016 lys tarih
- Bs 5266-1:2016 free download
- Polisitemia vera tanı kriterleri 2016
- Financial management operations manual 2016 pdf
- 2016 pearson education inc
- Crm 2016 sdk
- Macros in word 2016
- Excel lesson 4 vocabulary
- Act 18 of 2016
- Dialogkonferansen 2016
- Martech 2016 agenda
- New zealand health strategy 2016
- Magic quadrant for data masking technology 2016
- Sql server master data management
- Imap terra outlook 2016
- Inhaltsbezogene kompetenzen deutsch
- Staar released test
- Antônio caio dos santos
- Sql server 2016 management studio
- Sql server 2016 security features