interactive computer graphics warping and...

15
1 Lecture 14: Warping and Morphing: Slide 1 Interactive Computer Graphics • Lecture 14+15: Warping and Morphing Lecture 14: Warping and Morphing: Slide 2 Warping and morphing Lecture 14: Warping and Morphing: Slide 3 Warping and Morphing • What is – warping ? – morphing ? ? Lecture 14: Warping and Morphing: Slide 4 Warping and Morphing • What is – warping ? – morphing ?

Upload: others

Post on 09-May-2020

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

1

Lecture 14: Warping and Morphing: Slide 1

Interactive Computer Graphics

• Lecture 14+15: Warping and Morphing

Lecture 14: Warping and Morphing: Slide 2

Warping and morphing

Lecture 14: Warping and Morphing: Slide 3

Warping and Morphing

• What is– warping ?– morphing ?

?

Lecture 14: Warping and Morphing: Slide 4

Warping and Morphing

• What is– warping ?– morphing ?

Page 2: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

2

Lecture 14: Warping and Morphing: Slide 5

Warping

• The term warping refers to the geometrictransformation of graphical objects (images, surfacesor volumes) from one coordinate system to anothercoordinate system.

• Warping does not affect the attributes of theunderlying graphical objects.

• Attributes may be– color (RGB, HSV)– texture maps and coordinates– normals, etc.

Lecture 14: Warping and Morphing: Slide 6

Morphing

• The term morphing stands for metamorphosing andrefers to an animation technique in which onegraphical object is gradually turned into another.

• Morphing can affect both the shape and attributes ofthe graphical objects.

Lecture 14: Warping and Morphing: Slide 7

Morphing = Object Averaging

• The aim is to find “an average” between twoobjects– Not an average of two images of objects…– …but an image of the average object!– How can we make a smooth transition in time?

– Do a “weighted average” over time t• How do we know what the average object looks

like?– Need an algorithm to compute the average geometry

and appearance

Lecture 14: Warping and Morphing: Slide 8

Averaging

P

Qv = Q - P

P + 0.5v= P + 0.5(Q – P)= 0.5P + 0.5 Q

P + 1.5v= P + 1.5(Q – P)= -0.5P + 1.5 Q(extrapolation)

Linear Interpolation(Affine Combination):New point aP + bQ,defined only when a+b = 1So aP+bQ = aP+(1-a)Q

What’s the averageof P and Q?

Page 3: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

3

Lecture 14: Warping and Morphing: Slide 9

Morphing using cross-dissolve

• Interpolate whole images:I(t) = t*I1 + (1-t)*I2

• This is called cross-dissolve• But what is the images are not aligned?

Lecture 14: Warping and Morphing: Slide 10

Morphing using warping and cross-dissolve

• Align first, then cross-dissolve

Lecture 14: Warping and Morphing: Slide 11

Image warping

• image filtering: change range of image• g(x) = T(f(x))

f

x

Tf

x

f

x

Tf

x

• image warping: change domain of image• g(x) = f(T(x))

Lecture 14: Warping and Morphing: Slide 12

Image warping

T

T

f

f g

g

• image filtering: change range of image• g(x) = h(T(x))

• image warping: change domain of image• g(x) = f(T(x))

Page 4: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

4

Lecture 14: Warping and Morphing: Slide 13

Parametric (global) warping

• Examples of parametric warps:

translation rotation aspect

affineperspective

cylindricalLecture 14: Warping and Morphing: Slide 14

Parametric (global) warping

• Transformation T can be expressed as a mapping:p’ = T(p)

• Transformation T can be expressed as a matrix:p’ = M*p

T

p = (x,y) p’ = (x’,y’)

Lecture 14: Warping and Morphing: Slide 15

Scaling

• Scaling a coordinate means multiplying each of its componentsby a scalar

• Uniform scaling means this scalar is the same for allcomponents:

× 2

Lecture 14: Warping and Morphing: Slide 16

• Non-uniform scaling: different scalars per component:

Scaling

X × 2,Y × 0.5

Page 5: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

5

Lecture 14: Warping and Morphing: Slide 17

scaling matrix S

What is the inverse of S?

Scaling

• Scaling operation:

• Or, in matrix form:

Lecture 14: Warping and Morphing: Slide 18

2-D Rotation

θ

(x, y)

(x’, y’)

x’ = x cos(θ) - y sin(θ)y’ = x sin(θ) + y cos(θ)

Lecture 14: Warping and Morphing: Slide 19

2-D Rotation

x = r cos (φ)y = r sin (φ)x’ = r cos (φ + θ)y’ = r sin (φ + θ)

Trig Identity…x’ = r cos(φ) cos(θ) – r sin(φ) sin(θ)y’ = r sin(φ) sin(θ) + r cos(φ) cos(θ)

Substitute…x’ = x cos(θ) - y sin(θ)y’ = x sin(θ) + y cos(θ)

θ

(x, y)

(x’, y’)

φ

Lecture 14: Warping and Morphing: Slide 20

2-D Rotation

• This is easy to capture in matrix form:

• Even though sin(θ) and cos(θ) are nonlinear functions of θ,– 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

R

Page 6: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

6

Lecture 14: Warping and Morphing: Slide 21

2x2 Matrices

• What types of transformations can berepresented with a 2x2 matrix?

2D Identity?

2D Scale around (0,0)?

Lecture 14: Warping and Morphing: Slide 22

2x2 Matrices

• What types of transformations can berepresented with a 2x2 matrix?

2D Rotate around (0,0)?

2D Shear?

Lecture 14: Warping and Morphing: Slide 23

2x2 Matrices

• What types of transformations can berepresented with a 2x2 matrix?

2D Mirror about Y axis?

2D Mirror over (0,0)?

Lecture 14: Warping and Morphing: Slide 24

2x2 Matrices

• What types of transformations can berepresented with a 2x2 matrix?

2D Translation?

Only linear 2D transformationscan be represented with a 2x2 matrix

NO!

Page 7: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

7

Lecture 14: Warping and Morphing: Slide 25

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

Lecture 14: Warping and Morphing: Slide 26

Homogeneous Coordinates

• Q: How can we represent translation as a matrixtransformation?

• A: Using the translation parameters as the rightmostcolumn:

Lecture 14: Warping and Morphing: Slide 27

Basic 2D Transformations

• Basic 2D transformations as 3x3 matrices

Translate

Rotate Shear

Scale

Lecture 14: Warping and Morphing: Slide 28

2D image transformations

Page 8: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

8

Lecture 14: Warping and Morphing: Slide 29

Transformations

• Dimensions of transformation– 1D: curves– 2D: images– 3D: volumes

• Types of transformations– rigid– affine– polynomial

– quadratic– cubic

– splines

Lecture 14: Warping and Morphing: Slide 30

Transformations in 3D: Rigid

• Rigid transformation (6 degrees of freedom)

• tx, ty, tz describe the 3 translations in x, y and z• r11, ..., r33 describe the 3 rotations around x, y, z

Lecture 14: Warping and Morphing: Slide 31

Transformations in 3D: Rigid

Lecture 14: Warping and Morphing: Slide 32

Transformations in 3D: Affine

• Affine transformations (12 degrees of freedom)

Page 9: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

9

Lecture 14: Warping and Morphing: Slide 33

Non-rigid transformations

• Quadratic transformation (30 degrees of freedom)

Lecture 14: Warping and Morphing: Slide 34

Non-rigid transformations

• Can be extended to other higher-order polynomials:– 3rd order (60 DOF)– 4th order (105 DOF)– 5th order (168 DOF)

• Problems:– can model only global shape changes, not local shape

changes– higher order polynomials introduce artifacts such as

oscillations

Lecture 14: Warping and Morphing: Slide 35

Image warping

• Given a coordinate transform (x’,y’) = T(x,y) and asource image f(x,y), how do we compute atransformed image g(x’,y’) = f(T(x,y))?

x x’

T(x,y)

f(x,y) g(x’,y’)

y y’

Lecture 14: Warping and Morphing: Slide 36

f(x,y) g(x’,y’)

Forward warping

• Send each pixel f(x,y) to its corresponding location(x’,y’) = T(x,y) in the second image

x x’

T(x,y)y y’

Page 10: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

10

Lecture 14: Warping and Morphing: Slide 37

f(x,y) g(x’,y’)

Forward warping

• Send each pixel f(x,y) to its corresponding location (x’,y’) =T(x,y) in the second imageQ: what if pixel lands “between” two pixels?

x x’

T(x,y)y y’

Lecture 14: Warping and Morphing: Slide 38

f(x,y) g(x’,y’)

Forward warping

• Send each pixel f(x,y) to its corresponding location (x’,y’) = T(x,y) in thesecond imageQ: what if pixel lands “between” two pixels?A: distribute color among neighboring pixels (x’,y’)

– known as “splatting”

x x’

T(x,y)y y’

Lecture 14: Warping and Morphing: Slide 39

f(x,y) g(x’,y’)xy

Inverse warping

• Get each pixel g(x’,y’) from its correspondinglocation (x,y) = T-1(x’,y’) in the first image

x x’y’

T-1(x,y)

Lecture 14: Warping and Morphing: Slide 40

f(x,y) g(x’,y’)xy

Inverse warping

• Get each pixel g(x’,y’) from its corresponding location(x,y) = T-1(x’,y’) in the first imageQ: what if pixel comes from “between” two pixels?

x x’

T-1(x,y)y’

Page 11: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

11

Lecture 14: Warping and Morphing: Slide 41

f(x,y) g(x’,y’)xy

Inverse warping

• Get each pixel g(x’,y’) from its corresponding location(x,y) = T-1(x’,y’) in the first imageQ: what if pixel comes from “between” two pixels?A: Interpolate color value from neighbors

– nearest neighbor, bilinear, Gaussian, bicubic

x x’

T-1(x,y)y’

Lecture 14: Warping and Morphing: Slide 42

Interpolation

Lecture 14: Warping and Morphing: Slide 43

Interpolation

Lecture 14: Warping and Morphing: Slide 44

Interpolation: Linear, 2D

p0

p2 p3

p1

y

xr

s

Page 12: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

12

Lecture 14: Warping and Morphing: Slide 45

Interpolation: Linear, 3D

zy

p5

p2 p3

p7

p4

p0 p1

p6

s

t

r

xLecture 14: Warping and Morphing: Slide 46

Non-rigid transformations

Lecture 14: Warping and Morphing: Slide 47

Non-rigid transformations: Correspondences

Lecture 14: Warping and Morphing: Slide 48

Non-rigid transformations: Correspondences

y

x

Page 13: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

13

Lecture 14: Warping and Morphing: Slide 49

Feature-Based Warping: Beier-Neeley

• Beier & Neeley use pairs of lines to specify warp– Given p in destination image, where is p’ in source image?

y’

x’

y

x

Lecture 14: Warping and Morphing: Slide 50

Feature-Based Warping: Beier-Neeley

y’

x’

y

x

Lecture 14: Warping and Morphing: Slide 51

y’

x’

y

x

Feature-Based Warping: Beier-Neeley

• For each pixel p in the destination image– find the corresponding u,v– find the p’ in the source image for that u,v– destination(p) = source(p’)

Lecture 14: Warping and Morphing: Slide 52

Warping with One Line Pair: Beier-Neeley

• What happens to the “F” ?

Translation !

Page 14: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

14

Lecture 14: Warping and Morphing: Slide 53

Warping with One Line Pair (cont.): Beier-Neeley

• What happens to the “F” ?

Scale !

Lecture 14: Warping and Morphing: Slide 54

Warping with One Line Pair (cont.): Beier-Neeley

• What happens to the “F” ?

Rotation !

Lecture 14: Warping and Morphing: Slide 55

Warping with One Line Pair (cont.): Beier-Neeley

• What happens to the “F” ?

In general, similarity transformations

Lecture 14: Warping and Morphing: Slide 56

Warping with Multiple Line Pairs: Beier-Neeley

• Use weighted combination of points defined each pairof corresponding lines

Page 15: Interactive Computer Graphics Warping and morphingdfg/graphics/graphics2009/GraphicsLecture14.pdf · 3 Lecture 14: Warping and Morphing: Slide 9 Morphing using cross-dissolve •Interpolate

15

Lecture 14: Warping and Morphing: Slide 57

Warping with Multiple Line Pairs: Beier-Neeley

• Use weighted combination of points defined by eachpair corresponding lines

p’ is a weighted average

Lecture 14: Warping and Morphing: Slide 58

Weighting Effect of Each Line Pair: Beier-Neeley

• To weight the contribution of each line pair

– where– length[i] is the length of L[i]– dist[i] is the distance from X to L[i]– a, b, p are constants that control the warp

Lecture 14: Warping and Morphing: Slide 59

Warping Pseudocode: Beier-Neeley

foreach destination pixel p dopsum = (0, 0)wsum = (0, 0)foreach line L[i] in destination do

p’[i] = p transformed by (L[i], L’[i]) psum = psum + p’[i] * weight[i] wsum += weight[i] end p’ = psum / wsum destination(p) = source(p’)end

Lecture 14: Warping and Morphing: Slide 60