![Page 1: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/1.jpg)
Image warping/morphing
Digital Visual Effects, Spring 2006Yung-Yu Chuang2005/3/15
with slides by Richard Szeliski, Steve Seitz and Alexei Efros
![Page 2: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/2.jpg)
Outline
• Images• Image warping• Image morphing
![Page 3: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/3.jpg)
Image fundamentals
![Page 4: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/4.jpg)
Image formation
A
B
![Page 5: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/5.jpg)
Sampling and quantization
![Page 6: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/6.jpg)
What is an image
• We can think of an image as a function, f: R2 R:– f(x, y) gives the intensity at position (x, y) – defined over a rectangle, with a finite range:
• f: [a,b]x[c,d] [0,1]
• A color image ( , )( , ) ( , )
( , )
r x yf x y g x y
b x y
⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
x
y
f
![Page 7: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/7.jpg)
A digital image
• We usually operate on digital (discrete) images:– Sample the 2D space on a regular grid– Quantize each sample (round to nearest integer)
• If our samples are D apart, we can write this as:f[i ,j] = Quantize{ f(i D, j D) }
• The image can now be represented as a matrix of integer values
62 79 23 119 120 105 4 0
10 10 9 62 12 78 34 0
10 58 197 46 46 0 0 48
176 135 5 188 191 68 0 49
2 1 1 29 26 37 0 77
0 89 144 147 187 102 62 208
255 252 0 166 123 62 0 31
166 63 127 17 1 0 99 30
![Page 8: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/8.jpg)
Image warping
![Page 9: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/9.jpg)
Image warping
image filtering: change range of imageg(x) = h(f(x))
f
x
hg
x
f
x
hg
x
image warping: change domain of imageg(x) = f(h(x))
![Page 10: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/10.jpg)
Image warping
h
h
f
f g
g
image filtering: change range of imagef(x) = h(g(x))
image warping: change domain of imagef(x) = g(h(x))
![Page 11: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/11.jpg)
Parametric (global) warping
translation rotation aspect
affineperspective
cylindrical
Examples of parametric warps:
![Page 12: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/12.jpg)
Parametric (global) warping
• Transformation T is a coordinate-changing machine: p’ = T(p)
• What does it mean that T is global?– Is the same for any point p– can be described by just a few numbers (parameters)
• Represent T as a matrix: p’ = M*p
T
p = (x,y) p’ = (x’,y’)
⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡yx
yx
M''
![Page 13: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/13.jpg)
Scaling
• Scaling a coordinate means multiplying each of its components by a scalar
• Uniform scaling means this scalar is the same for all components:
× 2
![Page 14: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/14.jpg)
• Non-uniform scaling: different scalars per component:
Scaling
X × 2,Y × 0.5
![Page 15: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/15.jpg)
Scaling
• Scaling operation:
• Or, in matrix form:
byyaxx
==''
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡yx
ba
yx
00
''
scaling matrix SWhat’s inverse of S?
![Page 16: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/16.jpg)
2-D Rotation
• This is easy to capture in matrix form:
• Even though sin(θ) and cos(θ) are nonlinear to θ,– x’ is a linear combination of x and y– y’ is a linear combination of x and y
• What is the inverse transformation?– Rotation by –θ– For rotation matrices, det(R) = 1 so
( ) ( )( ) ( ) ⎥
⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡ −=⎥
⎦
⎤⎢⎣
⎡yx
yx
θθθθ
cossinsincos
''
TRR =−1
R
![Page 17: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/17.jpg)
2x2 Matrices
• What types of transformations can be represented with a 2x2 matrix?
2D Identity?
yyxx
==''
⎥⎦⎤
⎢⎣⎡⎥⎦⎤
⎢⎣⎡=⎥⎦
⎤⎢⎣⎡
yx
yx
1001
''
2D Scale around (0,0)?
ysy
xsx
y
x
*'
*'
=
=⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡yx
ss
yx
y
x
00
''
![Page 18: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/18.jpg)
2x2 Matrices
• What types of transformations can be represented with a 2x2 matrix?
2D Rotate around (0,0)?
yxyyxx
*cos*sin'*sin*cos'
θθθθ
+=−=
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡ −=⎥
⎦
⎤⎢⎣
⎡yx
yx
θθθθ
cossinsincos
''
2D Shear?
yxshyyshxx
y
x
+=+=
*'*'
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡yx
shsh
yx
y
x
11
''
![Page 19: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/19.jpg)
2x2 Matrices
• What types of transformations can be represented with a 2x2 matrix?
2D Mirror about Y axis?
yyxx
=−=
''
⎥⎦⎤
⎢⎣⎡⎥⎦⎤
⎢⎣⎡−=⎥⎦
⎤⎢⎣⎡
yx
yx
1001
''
2D Mirror over (0,0)?
yyxx
−=−=
''
⎥⎦⎤
⎢⎣⎡⎥⎦⎤
⎢⎣⎡
−−=⎥⎦
⎤⎢⎣⎡
yx
yx
1001
''
![Page 20: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/20.jpg)
All 2D Linear Transformations
• Linear transformations are combinations of …– Scale,– Rotation,– Shear, and– Mirror
• Properties of linear transformations:– Origin maps to origin– Lines map to lines– Parallel lines remain parallel– Ratios are preserved– Closed under composition
⎥⎦
⎤⎢⎣
⎡⎥⎦
⎤⎢⎣
⎡=⎥
⎦
⎤⎢⎣
⎡yx
dcba
yx
''
![Page 21: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/21.jpg)
2x2 Matrices
• What types of transformations can be represented with a 2x2 matrix?
2D Translation?
y
x
tyytxx
+=+=
''
Only linear 2D transformations can be represented with a 2x2 matrix
NO!
![Page 22: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/22.jpg)
Translation
• Example of translation
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡++
=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
=⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
111001001
1''
y
x
y
x
tytx
yx
tt
yx
tx = 2ty = 1
Homogeneous Coordinates
![Page 23: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/23.jpg)
Affine Transformations
• Affine transformations are combinations of …– Linear transformations, and– Translations
• Properties of affine transformations:– Origin does not necessarily map to origin– Lines map to lines– Parallel lines remain parallel– Ratios are preserved– Closed under composition– Models change of basis
⎥⎥⎦
⎤
⎢⎢⎣
⎡
⎥⎥⎦
⎤
⎢⎢⎣
⎡=
⎥⎥⎦
⎤
⎢⎢⎣
⎡
wyx
fedcba
wyx
100''
![Page 24: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/24.jpg)
Projective Transformations
• Projective transformations …– Affine transformations, and– Projective warps
• Properties of projective transformations:– Origin does not necessarily map to origin– Lines map to lines– Parallel lines do not necessarily remain parallel– Ratios are not preserved– Closed under composition– Models change of basis
⎥⎥⎦
⎤
⎢⎢⎣
⎡
⎥⎥⎦
⎤
⎢⎢⎣
⎡=
⎥⎥⎦
⎤
⎢⎢⎣
⎡
wyx
ihgfedcba
wyx
'''
![Page 25: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/25.jpg)
2D coordinate transformations
• translation: x’ = x + t x = (x,y)• rotation: x’ = R x + t• similarity: x’ = s R x + t• affine: x’ = A x + t• perspective: x’ ≅ H x x = (x,y,1)
(x is a homogeneous coordinate)• These all form a nested group (closed under
composition w/ inv.)
![Page 26: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/26.jpg)
Image warping
• Given a coordinate transform x’ = h(x) and a source image f(x), how do we compute a transformed image g(x’) = f(h(x))?
f(x) g(x’)x x’
h(x)
![Page 27: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/27.jpg)
Forward warping
• Send each pixel f(x) to its corresponding location x’ = h(x) in g(x’)
f(x) g(x’)x x’
h(x)
![Page 28: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/28.jpg)
Forward warping
• Send each pixel f(x) to its corresponding location x’ = h(x) in g(x’)
f(x) g(x’)x x’
h(x)
• What if pixel lands “between” two pixels?• Answer: add “contribution” to several pixels,
normalize later (splatting)
![Page 29: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/29.jpg)
Inverse warping
• Get each pixel g(x’) from its corresponding location x = h-1(x’) in f(x)
f(x) g(x’)x x’
h-1(x’)
![Page 30: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/30.jpg)
Inverse warping
• Get each pixel g(x’) from its corresponding location x = h-1(x’) in f(x)
• What if pixel comes from “between” two pixels?• Answer: resample color value from
interpolated (prefiltered) source image
f(x) g(x’)x x’
![Page 31: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/31.jpg)
Interpolation
• Possible interpolation filters:– nearest neighbor– bilinear– bicubic– sinc / FIR
![Page 32: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/32.jpg)
Bilinear interpolation
• A simple method for resampling images
![Page 33: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/33.jpg)
Non-parametric image warping
• Specify a more detailed warp function• Splines, meshes, optical flow (per-pixel motion)
![Page 34: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/34.jpg)
Demo
• http://www.colonize.com/warp/• Warping is a useful operation for mosaics, video
matching, view interpolation and so on.
![Page 35: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/35.jpg)
Image morphing
![Page 36: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/36.jpg)
Image morphing
• The goal is to synthesize a fluid transformation from one image to another.
image #1 image #2dissolving
• Cross dissolving is a common transition between cuts, but it is not good for morphing because of the ghosting effects.
![Page 37: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/37.jpg)
Artifacts of cross-dissolving
http://www.salavon.com/
![Page 38: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/38.jpg)
Image morphing
• Why ghosting?• Morphing = warping + cross-dissolving
shape(geometric)
color(photometric)
![Page 39: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/39.jpg)
morphing
cross-dissolving
Image morphing
image #1 image #2
warp warp
![Page 40: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/40.jpg)
Morphing sequence
![Page 41: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/41.jpg)
Face averaging by morphing
average faces
![Page 42: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/42.jpg)
Image morphing
create a morphing sequence: for each time t1. Create an intermediate warping field (by
interpolation)2. Warp both images towards it3. Cross-dissolve the colors in the newly warped
images
![Page 43: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/43.jpg)
An ideal example
t=0 t=1t=0.25t=0.5t=0.75morphing
![Page 44: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/44.jpg)
An ideal example
middle face (t=0.5)t=0 t=1
![Page 45: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/45.jpg)
Warp specification (mesh warping)
• How can we specify the warp?1. Specify corresponding spline control points
interpolate to a complete warping function
easy to implement, but less expressive
![Page 46: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/46.jpg)
Warp specification (field warping)
• How can we specify the warp?2. Specify corresponding vectors
• interpolate to a complete warping function• The Beier & Neely Algorithm
![Page 47: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/47.jpg)
Beier&Neely (SIGGRAPH 1992)
• Single line-pair PQ to P’Q’:
![Page 48: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/48.jpg)
Algorithm (single line-pair)
• For each X in the destination image:1. Find the corresponding u,v2. Find X’ in the source image for that u,v3. destinationImage(X) = sourceImage(X’)
• Examples:
Affine transformation
![Page 49: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/49.jpg)
Multiple Lines
length = length of the line segment, dist = distance to line segmentThe influence of a, p, b. The same as the average of Xi’
![Page 50: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/50.jpg)
Full Algorithm
![Page 51: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/51.jpg)
Resulting warp
![Page 52: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/52.jpg)
Comparison to mesh morphing
• Pros: more expressive • Cons: speed and control
![Page 53: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/53.jpg)
Warp interpolation
• How do we create an intermediate warp at time t?– linear interpolation for line end-points– But, a line rotating 180 degrees will become 0
length in the middle– One solution is to interpolate line mid-point and
orientation angle
t=0
t=1
![Page 54: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/54.jpg)
Animated sequences
• Specify keyframes and interpolate the lines for the inbetween frames
• Require a lot of tweaking
![Page 55: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/55.jpg)
Results
Michael Jackson’s MTV “Black or White”
![Page 56: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/56.jpg)
Warp specification
• How can we specify the warp3. Specify corresponding points
• interpolate to a complete warping function
![Page 57: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/57.jpg)
Solution#1: convert to mesh warping
1. Define a triangular mesh over the points– Same mesh in both images!– Now we have triangle-to-triangle correspondences
2. Warp each triangle separately from source to destination– How do we warp a triangle?– 3 points = affine warp!– Just like texture mapping
![Page 58: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/58.jpg)
Multi-source morphing
![Page 59: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/59.jpg)
Multi-source morphing
![Page 60: Digital Visual Effects, Spring 2006cyy/courses/vfx/06spring/... · 2006. 3. 16. · A digital image • We usually operate on digital (discrete)images: – Sample the 2D space on](https://reader035.vdocuments.mx/reader035/viewer/2022070923/5fbb00396e19933e7a774c6c/html5/thumbnails/60.jpg)
References
• George Wolberg, Image morphing: a survey, The Visual Computer, 1998, pp360-372.
• Thaddeus Beier, Shawn Neely. Feature-Based Image Metamorphosis, SIGGRAPH 1992.
• Michael Jackson's "Black or White" MTV