40
Multimedia Programming 06: Image Warping Departments of Digital Contents Sang Il Park

Multimedia Programming 06: Image Warping Departments of Digital Contents Sang Il Park

Embed Size (px)

Citation preview

Multimedia Programming 06:

Image WarpingDepartments of Digital

ContentsSang Il Park

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

Review

• Filter: Blur (smooth) filter– Mean Filter (Box Filter)

– Gaussian Filter

– Median 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

Programming Assignment #2• “ 뽀샤시 필터” 디자인

Programming Assignment #2• 뽀샤시 필터 디자인 결과의 예

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 Processing 2

Image Warping

Alexei Efros

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

• 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?

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, 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 ( + )

코사인 법칙 /사인법칙 적용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

Inverse of a 2-D Rotation• Rotation by –

'

'

cossin

sincos

'

'

cossin

sincos

y

x

y

x

y

x

1R

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

• Q: How can we represent translation as a 3x3 matrix?

y

x

tyy

txx

'

'

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’

2D image transformations

These transformations are a nested set of groups• Closed under composition and inverse is a member