Upload
hana
View
25
Download
1
Embed Size (px)
DESCRIPTION
Image Warping (Szeliski Sec 2.1.2). http://www.jeffrey-martin.com. CS194: Image Manipulation & Computational Photography Alexei Efros, UC Berkeley, Fall 2014. Some slides from Steve Seitz. f. f. f. T. T. x. x. x. f. x. Image Transformations. image filtering: change range of image - PowerPoint PPT Presentation
Citation preview
Image Warping (Szeliski Sec 2.1.2)
Some slides from Steve Seitz
http://www.jeffrey-martin.com
CS194: Image Manipulation & Computational PhotographyAlexei Efros, UC Berkeley, Fall 2014
Image Transformations
image filtering: change range of imageg(x) = T(f(x))
f
x
Tf
x
f
x
Tf
x
image warping: change domain of imageg(x) = f(T(x))
Image Transformations
T
T
f
f g
g
image filtering: change range of image
g(x) = T(f(x))
image warping: change domain of imageg(x) = f(T(x))
Parametric (global) warpingExamples of parametric warps:
translation rotation aspect
affineperspective
cylindrical
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)
Let’s represent a linear T as a matrix:
p’ = Mp
T
p = (x,y) p’ = (x’,y’)
y
x
y
xM
'
'
ScalingScaling a coordinate means multiplying each of its components by
a scalarUniform scaling means this scalar is the same for all components:
2
Non-uniform scaling: different scalars per component:
Scaling
X 2,Y 0.5
Scaling
Scaling operation:
Or, in matrix form:
byy
axx
'
'
y
x
b
a
y
x
0
0
'
'
scaling matrix S
What’s inverse of S?
2-D Rotation
(x, y)
(x’, y’)
x’ = x cos() - y sin()y’ = x sin() + y cos()
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() cos() + r cos() sin()
Substitute…x’ = x cos() - y sin()y’ = x sin() + y cos()
(x, y)
(x’, y’)
2-D RotationThis 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
y
x
y
x
cossin
sincos
'
'
TRR 1
R
2x2 MatricesWhat 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
*'
*'
y
x
s
s
y
x
y
x
0
0
'
'
2x2 MatricesWhat types of transformations can be
represented with a 2x2 matrix?
2D Rotate around (0,0)?
yxyyxx
*cos*sin'*sin*cos'
y
x
y
x
cossin
sincos
'
'
2D Shear?
yxshy
yshxx
y
x
*'
*'
y
x
sh
sh
y
x
y
x
1
1
'
'
2x2 MatricesWhat 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
''
2x2 MatricesWhat types of transformations can be
represented with a 2x2 matrix?
2D Translation?
y
x
tyy
txx
'
'
Only linear 2D transformations can be represented with a 2x2 matrix
NO!
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
y
x
dc
ba
y
x
'
'
yx
lkji
hgfe
dcba
yx''
Consider a different Basisj =(0,1)
i =(1,0)
q
q=4i+3j = (4,3) p=4u+3v
v =(vx,vy)
u=(ux,uy)
p
Linear Transformations as Change of Basis
Any linear transformation is a basis!!!
j =(0,1)
i =(1,0)pij = 4u+3v
px=4ux+3vx
py=4uy+3vy
v =(vx,vy)
u=(ux,uy)
puv pij
puv = (4,3)
puvpij
yy
xx
yy
xx
vu
vu
vu
vu
3
4
What’s the inverse transform?
• How can we change from any basis to any basis?• What if the basis are orthogonal?
v =(vx,vy)
u=(ux,uy)
puv
j =(0,1)
i =(1,0)pij = (5,4)
pij
puv = (px,py) = ?= pxu + pyv
pijpuv
yy
xx
yy
xx
vu
vu
vu
vu
4
5-1-1
Projection onto orthogonal basisv =(vx,vy)
u=(ux,uy)
puv
j =(0,1)
i =(1,0)pij = (5,4)
pij
puv = (u·pij, v·pij)
pijpuv
yx
yx
yy
xx
vv
uu
vv
uu
4
5
Homogeneous CoordinatesQ: How can we represent translation as a 3x3
matrix?
y
x
tyy
txx
'
'
Homogeneous CoordinatesHomogeneous coordinates
• represent coordinates in 2 dimensions with a 3-vector
1
coords shomogeneou y
x
y
x
Homogeneous Coordinates
Add a 3rd coordinate to every 2D point• (x, y, w) represents a point at location (x/w, y/w)• (x, y, 0) represents a point at infinity• (0, 0, 0) is not allowed
Convenient coordinate system to
represent many useful transformations
1 2
1
2(2,1,1) or (4,2,2) or (6,3,3)
x
y
Homogeneous CoordinatesQ: How can we represent translation as a 3x3
matrix?
A: Using the rightmost column:
100
10
01
y
x
t
t
ranslationT
y
x
tyy
txx
'
'
TranslationExample of translation
11100
10
01
1
'
'
y
x
y
x
ty
tx
y
x
t
t
y
x
tx = 2ty = 1
Homogeneous Coordinates
Basic 2D TransformationsBasic 2D transformations as 3x3 matrices
1100
0cossin
0sincos
1
'
'
y
x
y
x
1100
10
01
1
'
'
y
x
t
t
y
x
y
x
1100
01
01
1
'
'
y
x
sh
sh
y
x
y
x
Translate
Rotate Shear
1100
00
00
1
'
'
y
x
s
s
y
x
y
x
Scale
Matrix CompositionTransformations can be combined by
matrix multiplication
wyx
sysx
tytx
wyx
1000000
1000cossin0sincos
1001001
'''
p’ = T(tx,ty) R() S(sx,sy) p
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
Will the last coordinate w always be 1?
wyx
fedcba
wyx
100''
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
'''
2D image transformations
These transformations are a nested set of groups• Closed under composition and inverse is a member