Topic 7:
Image Morphing
1. Intro to basic image morphing
2. The Baier
Baier--Neely morphing algorithm
Image Morphing
Introduction to image morphing
Basic idea
Beier-Neely morphing
Extensions: View Morphing
A combination of view synthesis & image morphing
Image Morphing
A combination of generalized image warping with a cross-dissolve
between pixels
Morphing involves two steps:
Pre-warp the two images
Cross-dissolve their colors
Source
Image 01
Warp 0
Warp 1
Morph
Source 1
Image 1
Cross--Dissolving Two Images
Cross
Cross-dissolve
A weighted combination of two images, pixel-by-pixel
Image 0
Image 1
Combination controlled by a single interpolation parameter t:
Image PrePre-Warping
Source
Image 01
Warp 0
No pre-warping Pre-warping
Warp 1
Image 1
Why warp first?
In order to align features that appear in both images
(e.g., eyes, mouth, hair, etc). Without such an alignment, we
would get a double-image effect!!
Image pre-warping
Re-position all pixels in the source images to avoid the doubleimage effect as much as possible
Pre-warping implemented using the Field Morphing Algorithm
Image Morphing
Both morphing steps specified by same parameter t
Warp the two images according to t
Cross-dissolve their colors according to t
Morphing videos generated by creating a sequence of images,
defined by a sequence of t-values (e.g., 0,0.1,0.2,,0.9,1)
Source 0
1
Warp 0
Warp 1
Source 1
Morphing Example
Image 0
Image 1
Intermediate Images
Beier--Neely Field Morphing Algorithm (1992)
Beier
Warped image computed using Field Morphing Algorithm
Image warp specified by interactively drawing lines in the
two source images
Morphing by Backward Mapping
To completely determine the morph we need to define the
functions U(r,c), V(r,c)
Backward mapping:
for r = rmin to rmax
for c = cmin to cmax
u = U(r,c)
v = V(r,c)
copy pixel at source (u,v)
to destination (r,c)
Intermediate Morphs
A single parameter t defines two warps, one applied to
image 1 and one to image 2
(r,c)
(r,c)
Coordinate Maps in Field Morphing
Two cases:
1. Coordinate map defined by a single line pair
2. Coordinate map defined by multiple line pairs
Coordinate Maps from One Line Pair
Steps:
1. Compute position of pixel X in Image 1 relative to
destination line
(r,c) (u,v)
2. Compute (r,c) coordinates of pixel X in Image 0 whose
position relative to source line is (u,v)
(u,v) (r,c)
source line
destination line
Computing Pixel Positions Relative to a Line
Position of pixel X in Image 1 relative to destination line
(r,c) (u,v)
given by
Computing Pixel Positions Relative to a Line
Position of pixel X in Image 0 relative to source line
(r,c) (u,v)
Pixel Coordinates Relative to a Line
Examples
Coordinate Maps from One Line Pair
Field warping algorithm (single-line case)
For each pixel (r,c) in the destination image
find the corresponding (u,v) coordinates of the pixel
find the (r,c) in source image for that (u,v)
color at destination pixel (r,c) = color at source pixel (r,c)
Coordinate Maps from Multiple Line Pairs
Field warping algorithm (multiple-line case)
1. Apply single-line field warping algorithm to each line
separately, to get N source pixel positions (ri,ci) for every
destination pixel (N= # of line pairs)
2. Compute source position (r,c) as weighted average of
positions (ri,ci)
Computing the Averaging Weights
(r,c)
p b
length
weight =
a + dist
controls influence of line
for points near it
abs( v) if 0 < u < 1
distance of (r, c) from P if u < 0
distance of (r, c) from Q if u > 1
Beier--Neely Field Warping Algorithm
Beier
For each pixel (r,c) in destination image
DSUM=(0,0)
weightsum = 0
for each line (Pi,Qi)
calculate (ui,vi)
based on Pi,Qi
calculate (ri,ci)
based on u,v & Pi,Qi
calculate displacement
Di=Xi-Xi for this line
calculate weight
for line (Pi,Qi)
DSUM += Di*weight
weightsum += weight
(r,c) = (r,c) + DSUM/weightsum
color at destination pixel (r,c) = color at source pixel (r,c)
Warping Example
Morphing Example
Morphing Dynamic Scenes