0% found this document useful (0 votes)
16 views40 pages

Lec04 Transformations

Uploaded by

Abdullah Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views40 pages

Lec04 Transformations

Uploaded by

Abdullah Khan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 40

Computer Vision

Image transformations and image warping


Reading
• Szeliski: Chapter 3.6
Image alignment
Image alignment

Why don’t these image line up exactly?


What is the geometric relationship
between these two images?

Answer: Similarity transformation (translation, rotation, uniform scale)


What is the geometric relationship
between these two images?

?
What is the geometric relationship
between these two images?

Very important for creating mosaics!


First, we need to know what this transformation is.
Second, we need to figure out how to compute it using feature matches.
Image Warping
• image filtering: change range of image
• g(x) = h(f(x))
f g
h

x x

• image warping: change domain of image


• g(x) = f(h(x))
f g
h

x x
Richard Szeliski Image Stitching 8
Image Warping
• image filtering: change range of image
• g(x) = h(f(x))
f g
h

• image warping: change domain of image


• g(x) = f(h(x))
f g
h

Richard Szeliski Image Stitching 9


Parametric (global) warping
• Examples of parametric warps:

translation rotation aspect

Richard Szeliski Image Stitching 10


Parametric (global) warping
T

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

• 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)
• Let’s consider linear xforms (can be represented by a 2x2
matrix):
Common linear transformations
• Uniform scaling by s:

(0,0) (0,0)

What is the inverse?


Common linear transformations
• Rotation by angle θ (about the origin)

θ
(0,0) (0,0)

What is the inverse?


For rotations:
2x2 Matrices
• What types of transformations can
be
represented
2D mirror acrosswith a 2x2 matrix?
Y axis?

2D mirror across line y = x?


2x2 Matrices
• What types of transformations can
be
represented
2D mirror acrosswith a 2x2 matrix?
Y axis?

2D mirror across line y = x?


2x2 Matrices
• What types of transformations can be
represented with a 2x2 matrix?
2D Translation?
2x2 Matrices
• What types of transformations can be
represented with a 2x2 matrix?
2D Translation?
NO!

Translation is not a linear operation on 2D


coordinates
All 2D Linear Transformations
• Linear transformations are combinations of

– Scale,  x'  a b   x 
– Rotation,  y '  c d   y 
    
– 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
 x '   a b   e f i j  x
 y '  c d   g h   k l   y 
Homogeneous coordinates
(x, y, w)
w

Trick: add one more coordinate: homogeneous plane

(x/w, y/w, 1)
w=1
x
homogeneous image
coordinates
y

Converting from homogeneous coordinates


Translation
• Solution: homogeneous coordinates to the rescue
Affine transformations

any transformation
represented by a 3x3
matrix with last row [ 0
0 1 ] we call an affine
transformation
Basic affine transformations

 x'  1 0 t x   x   x '  s x 0 0  x 
 y '   0 1 t   y   y '  0 sy 0  y 
   y    
 1   0 0 1   1   1   0 0 1  1 
Translate Scale

 x'  cos   sin  0  x   x '  1 shx 0  x 


 y '  sin  0  y   y '  sh
   cos 
   y 1 0  y 
 1   0 0 1  1   1   0 0 1  1 
2D in-plane rotation Shear
Affine transformations
• Affine transformations are combinations of …
– Linear transformations, and  x'  a b c   x
– Translations  y '  d e f   y
 w  0 0 1   w
  

• 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
Is this an affine transformation?
Where do we go from here?

what happens when


we mess with this
row?
affine transformation
Projective Transformations aka
Homographies aka Planar Perspective
Maps

Called a homography
(or planar perspective
map)
Homographies

What happens
when the
denominator is 0?
Points at infinity
Image warping with homographies

image plane in front image plane below


black area
where no pixel
maps to
Homographies
Homographies
• Homographies …
– 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

• Key fact: homographies are only defined up to a scale factor


(e.g., H and 2H are equivalent homographies)
Alternate formulation for homographies

where the length of the vector [h00 h01 … h22] is 1


2D image transformations

These transformations are a nested set of groups


• Closed under composition and inverse is a member
Implementing image warping
• Given a coordinate xform (x’,y’) = T(x,y) and a source
image f(x,y), how do we compute a transformed image
g(x’,y’) = f(T(x,y))?

T(x,y
y y’
)

x x’
f(x,y g(x’,y’
) )
Forward Warping
• Send each pixel (x,y) to its corresponding location
(x’,y’) = T(x,y) in g(x’,y’)
• What if pixel lands “between” two
pixels?

T(x,y
y y’
)

x x’
f(x,y g(x’,y’
) )
Forward Warping
• Send each pixel (x,y) to its corresponding location
(x’,y’) = T(x,y) in g(x’,y’)
• What if pixel lands “between” two
• pixels?
Answer: add “contribution” to several
pixels, normalize later (splatting)
• Can still result in holes
T(x,y
y y’
)

x x’
f(x,y g(x’,y’
) )
Inverse Warping
• Get each pixel g(x’,y’) from its corresponding
location (x,y) = T-1(x,y) in f(x,y)
• Requires taking the inverse of the
transform
• What if pixel comes from “between” two
pixels?
T-
y y’
1
(x,y)

x x’
f(x,y g(x’,y’
) )
Inverse Warping
• Get each pixel g(x’,y’) from its corresponding
location (x,y) = T-1(x’,y’) in f(x,y)
• What if pixel comes from “between” two
• Answer:
pixels? resample color value from
interpolated (prefiltered) source image

T-
y y’
1
(x,y)

x x’
f(x,y g(x’,y’
) )
Interpolation
• Possible interpolation filters:
– nearest neighbor
– bilinear
– bicubic
– sinc
• Needed to prevent “jaggies”
and “texture crawl”
(with prefiltering)
Questions?

You might also like