53
IT Uppsala universitet Data representation and fundamental algorithms Filip Malmberg filip@cb.uu.se

ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

  • View
    227

  • Download
    5

Embed Size (px)

Citation preview

Page 1: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

IT Uppsala universitet

Data representation and fundamental algorithms

Filip Malmberg [email protected]

Page 2: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #2@ UU/IT

Data representation Data is discrete, i.e., we only know the data at

a finite set of locations. Interpolation is used to find data values

between sampled points.

Page 3: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #3@ UU/IT

Data representationData consists of structure (regular or irregular) geometry (Sample locations) attributes (Data at sample locations)

Page 4: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #4@ UU/IT

Uniform grid• Regular structure• Regular geometry

Page 5: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #5@ UU/IT

Image data

Page 6: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #6@ UU/IT

Multi-dimensional images A multi-dimensional image can be considered

as a function f(x,y,z,t,b), where• z: third spatial direction• t: time sequence• b: spectral bands

Different combinations, for example• f(x,y,z,t) is a 4D image representing a time

sequence of volume images

Page 7: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #7@ UU/IT

Volume images There are several different tomographic

devices:• Computed Tomography (CT)• Magnetic Resonance Imaging (MRI)• Positron Emission Tomography (PET)• and others

Page 8: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #8@ UU/IT

Computed tomography CT produces anatomical images (attenuation

maps) Low contrast in soft tissue Bone is visible High resolution

Page 9: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #9@ UU/IT

Magnetic Resonance Imaging MRI produces anatomical images Very good contrast in soft tissue

Page 10: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #10@ UU/IT

Positron Emission TomographyPET shows the concentration of a positron emitting tracer given to patientFunctional images (show physiological parameters) Low resolution

Page 11: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #11@ UU/IT

Rectilinear grid• Regular structure• “Partially” regular geometry

Page 12: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #12@ UU/IT

Structured grid• Regular structure• Irregular geometry

Page 13: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #13@ UU/IT

Unstructured points• Irregular geometry• No structure

Page 14: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #14@ UU/IT

Unstructured grid• The most general form of a dataset• A collection of vertices, edges, faces,

any cell type• Connectivity information must be explicitly

stored

Page 15: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #15@ UU/IT

Example: Polygon mesh

Page 16: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #16@ UU/IT

How are unstructured meshes different than regular grids?

Regular Gridsmesh info accessed implicitly using grid point indicesefficient in both computation and storagetypically use finite difference (FD) discretizationCartesian grids or logically rectangular grids

Page 17: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #17@ UU/IT

How are unstructured meshes different than regular grids?

Unstructured Meshes

•mesh connectivity information must be stored•handles complex geometries and grid adaptivity•typically use finite volume or •finite element (FE) discretization•mesh quality becomes a concern

Page 18: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #18@ UU/IT

Data attributes Scalar Vector

• magnitude and direction Normal

• a vector of magnitude 1• used for lighting

Texture coordinate• mapping data points into a texture space

Tensor

Page 19: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #19@ UU/IT

Operations on datasets• Geometric transformations• Topological transformations• Attribute transformations• Combined transformations

Page 20: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #20@ UU/IT

Scalar algorithms: Color mapping Colour mapping is a common scalar

visualization technique that maps scalar data to colours

The scalar values serve as indices into a colour lookup table

Or mapping through a transfer function

Page 21: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #21@ UU/IT

Colour mapping

Page 22: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #22@ UU/IT

Scalar algorithms: Isocontour/Isosurface Extractions

2D isocontours 3D isosurface

Page 23: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #23@ UU/IT

Surface rendering of volume dataThe data must be converted to an intermediate surface description using geometric primitives

Page 24: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #24@ UU/IT

Surface versus Volume rendering Surface Rendering We assume that data to

be visualized can be modelled by surfaces. Normally, we model the object with geometric primitives such as points, lines, triangles or polygons and use standard Computer Graphics techniques to render the data

Volume Rendering operates on the data itself and takes into account the changing properties inside the object

Page 25: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #25@ UU/IT

Surface reconstruction from volumesThe by far most popular method is the Marching Cubes algorithm (MC) (Lorensen et al., SIGGRAPH 1987)MC uses the grey-scale information in the data to build triangulated surfacesMC works by looking at each element of the volume dataset one at a time to decide whether its vertices are inside or outside the isosurfaceThis decision is made by comparing the values at the vertices of the volume elements with the value which has been defined as the surface valueIf the surface passes through the volume element, the approximate position of the isosurface intersection is calculated, normally using trilinear interpolation

Page 26: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #26@ UU/IT

Isocontour vs interpolation

Remember bi-linear interpolation?

p2 p3

p0 p1

P = ?

p4 p5

To know the value of P, we can first compute p4 and p5 and then linearly interpolate P

The problem of extracting an isocontour is the inverse of value interpolation

Page 27: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #27@ UU/IT

Isocontour, cont’d

p2 p3

p0 p1

(2) Calculate the positions of P

(3) Connect the points with lines

We can solve the problem based on linear interpolation

(1) Identify edges that contain points P with value C, i.e., if pi < C < pj

Page 28: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #28@ UU/IT

In how many ways can a contour intersect a 2D cell?

Two contours pass through the cell

In fact, there are only 4 unique topological cases

Contour completely outside cell

One vertex inside, three vertices outside (or vice versa)

Two vertices inside, two vertices outside

Page 29: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #29@ UU/IT

Marching Squares

4 pixels in a 2 x 2 neighbourhood

8 of 16 possible configurations

Page 30: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #30@ UU/IT

Divide-and-conquer Algorithm

• Look at one cell at a time

• Compare the values at 4 vertices with the isovalue C

• Linearly interpolate along the edges

• Connect the interpolated points together

Page 31: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #31@ UU/IT

Boundary representations

Pixel edgesMarching squares

Page 32: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #32@ UU/IT

Marching Cubes

A marching cube is bounded by the 8 voxels in a 2 x 2 x 2 neighbourhood

If object (value=1) and background (value=0) are considered, then there are 28 = 256 possible configurations of the 8 voxels

Page 33: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #33@ UU/IT

Conversion of voxel data to triangulated surfaces

Page 34: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #34@ UU/IT

MC algorithm

Step 1 – Create the cubes using the centres of 8 voxels; four from slice k four from slice k+1

1

3

2

4

5

7

6

8

Page 35: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #35@ UU/IT

MC algorithm

Step 2 - Classify each vertex of the cube

1 = inside the object

0 = outside the object

Step 3 - Build an index

The classification gives an 8-bit index number (e.g., 01100111, 00110010) for each cube

Page 36: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #36@ UU/IT

Cube example

Marching cube configuration 001100102 = 50, Case 5, 3 triangles

Page 37: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #37@ UU/IT

MC algorithm

Step 4 –

Get the edge list

For a given index, access a list of cube edges (a lookup table) that contains triangle vertices

1

3

245

7

68

1211

109

Page 38: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #38@ UU/IT

MC algorithm

Step 5 - Interpolate the triangle verticesFor the cube edges, find the intersection points using (linear) interpolation of the density values

The midpoint of the cube edge may be chosen for the triangle vertex

Page 39: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #39@ UU/IT

MC algorithm, final step

Step 6 - Calculate a unit normal for each triangle vertex Estimate a gradient vector G at each cube vertex using central differences of the density data D

Gx(i,j,k) = D(i+1, j, k) - D(i-1, j, k)Gy(i,j,k) = D(i, j+1, k) - D(i, j-1, k)Gz(i,j,k) = D(i, j, k+1) - D(i, j, k-1)

Interpolate the gradient at the intersection, i.e., the triangle vertex

Rendering algorithms use the normals to produce, e.g., Gouraud shading

Page 40: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #40@ UU/IT

Marching Cubes -Algorithm in summary

1. Create a cube2. Classify each vertex3. Build an index4. Get edge list5. Interpolate triangle vertices6. Calculate and interpolate normals

Page 41: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #41@ UU/IT

More cube examples

Case 1 Case 2 Case 8

Page 42: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #42@ UU/IT

Non-boundary cubes

Completely outside object Completely inside object

Page 43: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #43@ UU/IT

Tricky configurations

Case 6

5 triangles

Page 44: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #44@ UU/IT

MC – Pros and cons

?

•Straightforward to implement•Fast to generate•Generates many, many triangles •Does not always connect things in a correct way (ambiguities)

•The generated surfaces are not perfectly smooth

Page 45: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #45@ UU/IT

MC – Pros and cons

Page 46: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #46@ UU/IT

Voxel examples: sphere and cube

Page 47: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #47@ UU/IT

MC examples: sphere and cube

Page 48: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #48@ UU/IT

Vector algorithms

Vector data is a 3D representation of direction and magnitudeLike scalar fields, vectors are defined at discrete points

Page 49: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #49@ UU/IT

Vector field visualization challenges

Displaying a vector requires more visual attributes

(u,v,w) has direction and magnitude

Displaying a vector requires more screen space

more than one pixel is required to display an arrow

It becomes more challenging to display a dense vector field

Page 50: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #50@ UU/IT

Glyphs

•A general visualization technique used to represent data using a meaningful shape or pictorial representation

•Each glyph is generally a function of its input data and may change size, orientation, colour, and shape

•Example: oriented arrows, cones, etc.

Page 51: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #51@ UU/IT

Animated particles

Advection of (massless) particles through the vector field

Page 52: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

UU/IT

08-01-29 | #52@ UU/IT

Streamlines

•Curves that connect particle positions

•Start from one or more seed-points

Page 53: ITUppsala universitet Data representation and fundamental algorithms Filip Malmberg filip @cb.uu.se

IT Uppsala universitet

Data representation and fundamental algorithms

Filip Malmberg [email protected]