Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D...
Transcript of Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D...
![Page 1: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/1.jpg)
1
Slicing: 3D texture mapping
Store volume in solid (3D) texture memory For all k screen parallel image planes in
distance lk– intersect slicing plane lk and trilinearly
interpolate f using 3D texture mapping (need to compute 3D texture coordinates for the vertices of the slice polygon).
– blend the texture mapped slice into frame buffer (using back-to-front alpha blending).
Hardware implemented 3D texture mapping
![Page 2: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/2.jpg)
2
Slice based Rendering
coloropacity
object (color, opacity) Similar to ray-casting with simultaneous rays1.0
![Page 3: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/3.jpg)
3
Rendering by Slicing - examples
MRI 2563 (back-to-front blending):
![Page 4: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/4.jpg)
4
Visualization– Rendering
• Object-based (region-based)
• Fast– Data filtering
• Color lookup table• 3D Image processing
Virtual environment– Display– Interaction
The 3DIVE System
![Page 5: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/5.jpg)
5
CAVE– 8 ft. Cubed room– Front, left, right and
floor rear-projection– Flock of Birds magnetic
tracking
ImmersaDesk– 4 x 5 ft. Screen– Single rear-projected
display– Ascension magnetic
tracking
Virtual Environment
![Page 6: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/6.jpg)
6
Rendering Method: 3D texture mapping
![Page 7: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/7.jpg)
7
![Page 8: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/8.jpg)
8
![Page 9: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/9.jpg)
9
Transfer functions
A function mapping from scalar values (and maybe their gradients or other evaluated quantities) to color and opacity values
May involve a sequence of scalar-to-scalar mappings followed by a “coloring” process (color lookup table, shading, etc.)
Red Green Blue Alpha
![Page 10: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/10.jpg)
10
Transfer function
Surface rendering Semi-transparentrendering -------
intensityColor & opacity
![Page 11: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/11.jpg)
11
Transfer function design
Infinite search space --- search space reduction, avoid invalid and bad transfer functions
Visual result dependent --- interactive process
Optimizing transfer function parameters by Genetic Algorithms
Design galleries Image analysis Integrated image processing
![Page 12: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/12.jpg)
12
TF: Parameter optimization
Dataset Parameter generation Volume rendering
User evaluation Image population
Dataset Parameter generation Volume rendering
Automatic evaluation Image populationUser objectives
a:
b:
![Page 13: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/13.jpg)
13
TF: Parameter optimization (2)
1. Encoding the solution2. Generate initial population3. Evaluate initial solution and assign fitness to
each solution4. While no satisfactory solution is found
4.1 Stochastically select an intermediate population4.2 Generate new solution population4.3 Evaluate new solutions4.4 Load-balance the population
![Page 14: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/14.jpg)
14
TF: Parameter optimization (3)
Solution encoding– Normalized functions: [0,1] [0,1]– A solution: Xi = [s1,s2,s3, …, sn] (i.e. samples)
Initial solutions (population)– Random– User defined– Pre-defined simple math functions
Selection of intermediate population– Genetic algorithm– Proportionate selection based on fitness values# of offsprings of solution i = fi / f, where fi is the fitness value
of solution I and f is the average fitness value in a population.
![Page 15: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/15.jpg)
15
TF: Generation of new solutions
Mutation: For each solution X = [s1,s2,s3, …, sn], a new solution may be generated: Y = [t1,t2,t3, …, tn], where ti
is a mutation of si. For example:
Crossover:– Randomly pair solutions– For each pair, randomly select two points, and
exchange segments between the two points.
llyexponentia decreases andconstant a is random, is ]1,1[ ,
m
mmmii
dfdfst −∈+=
![Page 16: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/16.jpg)
16
TF: Solution evaluation
– Generate an image by volume rendering using each transfer function solution
– User selection (1: like; 0: don’t like; (0,1): somewhere in between)
– Automatic evaluation: objective function by analyzing the images (e.g. histogram analysis)
![Page 17: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/17.jpg)
17
Parameter optimization (examples)
![Page 18: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/18.jpg)
18
TF: Design galleries
Parameter optimization: narrowing down solutions Design galleries: solution dispersion Design principles
– Input vector : piecewise function (polylines)– Output vector : a selected set of pixels from each
rendering image– Dispersion : finding a set of parameters of the input
vectors that optimally disperse the output vectors (by measuring nearest neighbor distances)
– Arrangement: organizing resulting images for easy selection and browsing.
![Page 19: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/19.jpg)
19
![Page 20: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/20.jpg)
20
TF: Design galleries (2)
Input: a random set of input vectors, I, and their output vectors, O. |I|=|O|=n
Output: modified input & output vectors, I and OProcedure Disperse(I,O,t) {
for i = 1 to t do {j=ran_int (1,n);u=perturb(I[j], i); // new transfer functionmap(u,v); // generate output vector “v”k=worst_index (O); // with the smallest nearest distanceif (is_better (v, O[k], O)) // replace O[k] with v
I[k]=u; O[k]=v;else if (is_better (v, O[j], O) // replace O[j]
I[j] = u; O[j] = v;}
}
![Page 21: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/21.jpg)
21
TF: Image analysis
Kindlmann and Durkin(IEEE VolVis Symposium 98)
Looking for boundary features Edge-detection based Transform dataset to a histogram volume Study f-f’-f’’ relationship
![Page 22: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/22.jpg)
22
![Page 23: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/23.jpg)
23
![Page 24: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/24.jpg)
24
![Page 25: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/25.jpg)
25
![Page 26: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/26.jpg)
26
![Page 27: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/27.jpg)
27
![Page 28: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/28.jpg)
28
Position function Defining opacity function based on distances to
the surface – constant thickness. Assuming a Gaussian distribution across boundary
boundary along average boundary along average :
)()(
)())((
))((
)()( ,)(
))(()( , ),( :
''
2
1'
1''2
2'
''2
212
2
fh fgwhere
vpvg
vhvff
vffx
xxfxfeccxf
vpbxbx p(v)xfvLet
'
x
=
=
=−
−≈−
≈
−≈⋅+≈
====
−
−
−
σσσ
α
σ
![Page 29: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/29.jpg)
29
![Page 30: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/30.jpg)
30
![Page 31: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/31.jpg)
31
![Page 32: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/32.jpg)
32
TF: Integrated image processing
Fang, Biddlecome, Tuceryan, IEEE Vis’98 Integrating image processing and visualization: a
more general approach Representing a transfer function as a sequence of
image processing procedures, with intuitive parameterization.
F = fn fn-1 …… f2 f1
where fi is an intensity mapping defined over the volume space, representing the result of an image processing procedure.
Coloring: shading and color table
![Page 33: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/33.jpg)
33
Two basic types of intensity mappings
Intensity table: an intensity-to-intensity lookup table representing a piecewise linear function over the volume’s intensity domain: [0,1][0,1]
Neighborhood function: a function involving the intensity values in a mxmxm neighborhood of the voxel: D [0,1]
A typical form is the 3D spatial convolution over the volume V and a mask T:
f (x,y,z) = Σ Τ [i, j, k] V [x+i, y+j, z+k]i,j,k = -m/2
m/2
![Page 34: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/34.jpg)
34
V0
Parameter modification Coloring and rendering
point pointf1 f2 f3
V0
Parameter modification Coloring and rendering
f1 f2 f3
V0
Parameter modification Coloring and rendering
slice slicef1 f2 f3
V1 V2 V3
(a) point-basedapproach
(Ray-casting)
(b) volume-basedapproach
(3D texture mapping)
(c) slice-basedapproach
(2D texture mapping)
![Page 35: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/35.jpg)
35
In point-based approach, when multiple neighborhood functions are used in one transfer function, each voxel may be computed multiple times, since it may fall into the neighborhoods of several sampling points.
![Page 36: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/36.jpg)
36
Buffering in point-based approach
A small fraction (often less then 10%) of the total set of voxels are actually used for each rendering
Buffers can be used to avoid repeated computation
V0 point f1 f2 f3
Buffer 1 Buffer 2 Buffer 3
![Page 37: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/37.jpg)
37
Enhancement operations
Point enhancement– Intensity modification– Histogram modification (e.g. histogram
equalization)Spatial enhancement
– Smoothing– Sharpening
![Page 38: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/38.jpg)
38
Smoothing & Sharpening
Smoothing– Gaussian:
– Median filter: median value in a neighborhood
Sharpening– Laplacian filter:– Unsharp masking: blending the low frequency
component V1 and the high frequency component (V-V1) using a convolution mask.
2222 2/)(22
1),,( σ
πσkjiekjiT ++−=
)(),,( 11 VVVkjiT −+= γ
),,(),,(),,( 2 zyxgzyxgzyxf ∇−=
![Page 39: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/39.jpg)
39
![Page 40: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/40.jpg)
40
![Page 41: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/41.jpg)
41
Iso-surface rendering by boundary detection
Apply a boundary (edge) detection operator to identify all boundary voxels (e.g. gradient thresholding)
Generate histogram of boundary voxels
Extract the intensity values (iso-values) at which the histogram reaches local maxima.
![Page 42: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/42.jpg)
42
![Page 43: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/43.jpg)
43
![Page 44: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/44.jpg)
44
Dynamic boundary rendering
Dynamically determine (by edge detection) the boundary points during rendering.
For surfaces that cannot be well defined by iso-values (e.g. in microscopy, photobleaching causes the same material to have different intensities in different focal planes).
Only simple edge detection procedure are used (e.g. convolution based)
![Page 45: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/45.jpg)
45
![Page 46: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/46.jpg)
Multi-scale iso-value detection
46
[Witkin, 1983] : “SCALE-SPACE FILTERING”.
Describes signals qualitatively, managing the ambiguity of scale in an organized and natural way.
The signal is expanded by convolution with Gaussian masks over a continuum of sizes.
The “Scale-Space” image is then collapsed, using it’s qualitative structure (e.g. zero-crossing points), into a tree providing a concise but complete qualitative description covering all scales of observation.
Scale space smoothing
Scale space map
s
σ
![Page 47: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/47.jpg)
47
![Page 48: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/48.jpg)
48
Vector Visualization
Data set is given by vectors: Gaseous and fluid flow (car, ship and aircraft design, blood vessels)
Techniques :– Hedgehogs/glyphs– Particle tracing– stream-, streak-, time- & path-lines, stream-
ribbon, stream-surfaces, stream-polygons, stream-tube
steady and unsteady flows: vector field stays constant or changes with time
![Page 49: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/49.jpg)
49
![Page 50: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/50.jpg)
50
Mappings - Hedgehogs, Glyphs
Put “icons” at certain places in the flow: oriented lines, glyphs, vortex, etc.
Use of icon size (length, volume, area) and direction
Tend to clutter the image real quick
orientedlines
glyphs
vortex
![Page 51: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/51.jpg)
Examples
51
![Page 52: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/52.jpg)
Weather Data
52Direction-hue Direction-value
![Page 53: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/53.jpg)
Tornado
53
![Page 54: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/54.jpg)
54
Mappings – Warping
Warping: Animate displacement by deformation and distortion
![Page 55: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/55.jpg)
55
Mappings – Displacement Plot
Displacement Plot: Use scalar values nvs ⋅=
![Page 56: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/56.jpg)
56
Mappings - Path-lines
Lines from particle trace collection of particle traces gives sense of
time evolution of flow computed by
( ) ( )dttxvxdtxvdtxd ,or , ==
![Page 57: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/57.jpg)
57
Path-line tracing
Euler method: Runge-Kutta method:
))( 21 terror: O(tvxx iii ∆∆+=+
),( ),,(
))( ) (2
1
311
ttvtxvvtxvv
terror: O(vvtxx
iiiii
iiii
∆+⋅∆+==
∆+∆
+=
+
++
![Page 58: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/58.jpg)
58
![Page 59: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/59.jpg)
Time-lines
Position at an instant of time of a batch of particles which had been released simultaneously.
59
T = 1 T = 2 T = 3
timeline
![Page 60: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/60.jpg)
60
TimelinePathline
![Page 61: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/61.jpg)
61
Mappings - Streak-lines
Locus at time t0 of all fluid elements that have previously passed through x0
information of the past history of the flow obtained by linking all the end-points of
the trace of:
Computer particle positions from the origin at time
( )txvdtxd ,=
itt ⋅∆−0
![Page 62: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/62.jpg)
62
Mappings - Streak-lines
![Page 63: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/63.jpg)
63
Mappings - Streamlines
Everywhere tangent to the flow, a mathematical curve, exist only at fixed time t0
Same as path-lines & streak-lines in steady flow integral curve along a curve s (s is the arc-length
of the curve) :
( ) ∫== vdsxtxvdsxd , , 0
![Page 64: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/64.jpg)
64
Mappings - Streamlines
![Page 65: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/65.jpg)
65
![Page 66: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/66.jpg)
66
Mappings - compare
![Page 67: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/67.jpg)
67
Mappings - Contours
![Page 68: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/68.jpg)
68
Mappings - Stream-ribbon
Need to see vorticities, I.e. places where the flow twists -- requires surface information.
Idea: trace neighboring particles and connect them with polygons, then shade those polygons appropriately to show twists.
A Problem - flow divergence ( the “spread”) Solution: trace one streamline and a constant size
vector (curve’s normal vector) with it:
![Page 69: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/69.jpg)
69
Mappings - Stream-tube
Stream-tube: Generate a stream-line and connect circular crossflow sections along the stream-line
![Page 70: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/70.jpg)
70
![Page 71: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/71.jpg)
71
![Page 72: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/72.jpg)
72
Mappings - Stream-surface
Stream-surface: Collection of stream-lines passing through a base curve (rake).
If the rake is closed : stream tube If the rake is open and short: stream
ribbon. No flow can pass through a stream surface Constructed by connecting polygons.
![Page 73: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/73.jpg)
73
![Page 74: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/74.jpg)
74
Mappings - Flow Volumes
Instead of tracing a line - trace a small polyhedron
![Page 75: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/75.jpg)
75
Flow Volume (1) Seed polygon (square) is used as smoke generator. Center is perpendicular to flow. Square can be subdivided into finer mesh. Volume is adaptively subdivided in areas of high
divergence (e.g. when edges become too long) There is no
merging. Irregular volume
(various topologies)
![Page 76: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/76.jpg)
76
Flow Volume (2)
Can simulate puffing smoke
Can be color-coded to represent other fields.
![Page 77: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/77.jpg)
77
![Page 78: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/78.jpg)
78
Rendering
Hedgehog & Glyphs– Oriented lines – polygonal representation
stream-**:– Curves– polygonal models– volumetric models (flow
volumes)
hedgehog
![Page 79: Slicing: 3D texture mappingshfang/cs552/cs552-tf-vector.pdf · 2014. 3. 2. · 1 1 Slicing: 3D texture mapping Store volume in solid (3D) texture memory For all k screen parallel](https://reader035.fdocuments.us/reader035/viewer/2022071420/61195fabedbb3d463167e582/html5/thumbnails/79.jpg)
79
Image Processing
apply a vector field to an image to create motions