multimedia programming 06: image warping departments of digital contents sang il park
TRANSCRIPT
Outline
• Review• Program Assignment #2• Image Warping
– Scaling– Rotation– 2x2 Transformation matrix
Review
• Point Processing– Brightness– Contrast– Gamma– Histogram equalization– Blur filter– Noise removal– Unsharp filter
OpenCV smoothing function
• cvSmooth ( input, output, type, param1, param2 )
– Type • CV_BLUR (simple blur) – Mean Filter• CV_GAUSSIAN (gaussian blur) – Gaussian Filter• CV_MEDIAN (median blur) – Median Filter
– param 1: size of kernel (width) : integer– param 2: size of kernel (height) : integer
Program Assignment #2
• 뽀샤시 필터 디자인의 주안점– 눈이 부신 듯한 느낌– No right answer!– Image Processing(filter) + Creativity
• 숙제 마감 : 9 월 20 일 수업 시간 전까지– Use your own picture (smaller than 600*400)– Show before and after– 2 인 1 조 ( or 1 인 1 조 ): 전과 달라도 상관 없음– 리포트 (hardcopy)– 이미지파일 + 소스파일 + 실행파일 (email)–
Image Warping
15-463: Computational PhotographyAlexei Efros, CMU, Fall 2006
Some slides from Steve Seitz
http://www.jeffrey-martin.com
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 imageg(x) = f(T(x))
Image Warping
T
T
f
f g
g
• image filtering: change range of image• g(x) = h(T(x))
image warping: change domain of imageg(x) = f(T(x))
Parametric (global) warping
• Examples of parametric warps:
translation
rotation aspect
affine perspective 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)
T
p = (x,y) p’ = (x’,y’)
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
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?
Inverse transformation
T-1
p = (x,y) p’ = (x’,y’)
p = T -1(p’ )
• Inverse transformation T-1 is a reverse process of the transformation T
Inverse of a scaling S
• Scaling operation S:
• Inverse of a S:
• In a matrix form:
byy
axx
'
'
y
x
b
a
y
x '
/10
0/1
'
scaling matrix S-1
'1
'1
yb
y
xa
x
2-D Rotation
x = r cos ()y = r sin ()x’ = r cos ( + )y’ = r sin ( + )
코사인 법칙 /사인법칙 적용x’ = r cos() cos() – r sin() sin()y’ = r cos() sin() + r sin() cos()
치환x’ = x cos() - y sin()y’ = x sin() + y cos()
(x, y)
(x’, y’)
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
y
x
y
x
cossin
sincos
'
'
R
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
*'
*'
y
x
s
s
y
x
y
x
0
0
'
'
2x2 Matrices
• What 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 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
''
2x2 Matrices
• What 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– Closed under composition
y
x
dc
ba
y
x
'
'
yx
lkji
hgfe
dcba
yx''
Homogeneous Coordinates
•Homogeneous coordinates– represent coordinates in 2 dimensions with a 3-
vector
1
coords shomogeneou y
x
y
x
( 동차좌표 )
Homogeneous Coordinates
• Q: 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
'
'
Translation•Example of translation
tx = 2ty = 1
11100
10
01
1
'
'
y
x
y
x
ty
tx
y
x
t
t
y
x
Homogeneous Coordinates
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
Basic 2D Transformations
• Basic 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
Translate
Rotate
1100
00
00
1
'
'
y
x
s
s
y
x
y
x
Scale
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''
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
'''
Matrix Composition
• Transformations can be combined by matrix multiplication
wyx
sysx
tytx
wyx
1000000
1000cossin0sincos
1001001
'''
p’ = T(tx,ty) R() S(sx,sy) p
Sequence of composition1. First, Scaling2. Next, Rotation3. Finally, Translation
Inverse Transformation
1
'
'
100
0cossin
0sincos
1
y
x
y
x
1
'
'
100
10
01
1
y
x
t
t
y
x
y
x
Translate
Rotate
1
'
'
100
0/10
00/1
1
y
x
s
s
y
x
y
x
Scale
Inverse Transformation
wyx
sysx
tytx
wyx
1000000
1000cossin0sincos
1001001
'''
p’ = T(tx,ty) R() S(sx,sy) p
'
'
'
100
10
01
100
0cossin
0sincos
100
0/10
00/1
w
y
x
ty
tx
sy
sx
w
y
x
P = S-1(sx,sy) R-1() T-1(tx,ty) p’