geometric image manipulationcs510/yr2017sp/more... · image manipulation lecture #3 monday, january...

4
Geometric Image Manipulation Lecture #3 Monday, January 23, 2017 Programming Assignment #1 Image Manipulation: Context To start with the obvious, an image is a 2D array of pixels Pixel locations represent points on the image plane Pixel values represent measurements of light Color images : energies by frequency ranges (RGB: three overlapping ranges) Intensity images : average energy across the visible range Building ray tracers should have taught you about image formation To directly compare two images, they should be registered Geometrically : image 1 should lines up withimage 2 Photometrically : equal pixel values should imply equal energy Geometric Registration It’s not enough for two matching images to have the same set of pixel values They have to be in the same relative positions Otherwise, these two images match! Image from CalTech256 data set Geometric Registration (II) Geometric registration finds a mapping that maps one image onto the other We will limit ourselves to linear transformation We should be able to register these… Registration formalism We denote an image as a 2D function , Or, in homogeneous coordinates, , , Given two image I i and I j Matching points {(u,v),...} & {(x,y),…} Find G such that & ,, * , 1

Upload: others

Post on 22-Jun-2020

25 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Geometric Image Manipulationcs510/yr2017sp/more... · Image Manipulation Lecture #3 Monday, January 23, 2017 Programming Assignment #1 Image Manipulation: Context • To start with

Geometric Image Manipulation

Lecture #3Monday, January 23,

2017

Programming Assignment #1

Image Manipulation: Context

• To start with the obvious, an image is a 2D array of pixels– Pixel locations represent points on the image plane– Pixel values represent measurements of light

• Color images : energies by frequency ranges (RGB: three overlapping ranges)• Intensity images : average energy across the visible range

– Building ray tracers should have taught you about image formation

• To directly compare two images, they should be registered– Geometrically : image 1 should “lines up with” image 2– Photometrically : equal pixel values should imply equal energy

Geometric Registration• It’s not enough for two matching images to

have the same set of pixel values• They have to be in the same relative positions

Otherwise, these two images match!

Imag

e fro

m C

alTe

ch25

6 da

ta s

et

Geometric Registration (II)• Geometric registration finds a mapping that

maps one image onto the other– We will limit ourselves to linear transformation

We should be able to register these…

Registration formalism• We denote an image as a 2D function 𝐼 𝑥, 𝑦• Or, in homogeneous coordinates, 𝐼 𝑥, 𝑦, 𝑤• Given

– two image Ii and Ij

– Matching points {(u,v),...} & {(x,y),…}

– Find G such that 𝐼& 𝑢, 𝑣, 𝑤 ≅ 𝐼* 𝐺 ,𝑥𝑦1

Page 2: Geometric Image Manipulationcs510/yr2017sp/more... · Image Manipulation Lecture #3 Monday, January 23, 2017 Programming Assignment #1 Image Manipulation: Context • To start with

Interpolation (foreshadow…)

• Seldom get integer-to-integer mappings.

• Geometry part computes real-valued positions of pixel centers.

• We will worry about how to interpolate values later.

Classes of Image Transformations• Rigid transformations

– Combine rotation and translation– Preserve relative distances and angles– 3 Degrees of freedom

• Similarity transformations– Add scaling to rotation and translation– Preserves relative angles– 4 Degrees of freedom

Building Blocks: Rotation• Trigonometric version

uv1

!

"

###

$

%

&&&=

cos Θ( ) −sin Θ( ) 0

sin Θ( ) cos Θ( ) 0

0 0 1

!

"

####

$

%

&&&&

xy1

!

"

###

$

%

&&&

• Projection onto basis vectors

uv1

!

"

###

$

%

&&&=

U1 U2 0

V1 V2 00 0 1

!

"

####

$

%

&&&&

xy1

!

"

###

$

%

&&&U ⋅U =1 V ⋅V =1 U ⋅V = 0

Building Blocks: Scaling• Uniform scaling

uv1

!

"

###

$

%

&&&=

s 0 00 s 00 0 1

!

"

###

$

%

&&&

xy1

!

"

###

$

%

&&&

• Non-uniform scaling

uv1

!

"

###

$

%

&&&=

sx 0 00 sy 0

0 0 1

!

"

####

$

%

&&&&

xy1

!

"

###

$

%

&&&

Building Blocks: Translation

uv1

!

"

###

$

%

&&&=

1 0 tx0 1 t y0 0 1

!

"

####

$

%

&&&&

xy1

!

"

###

$

%

&&&

Recall how homogenous coordinates formulates translation as a matrix

multiply

Q =MP

Translation Applied to Images

Translate 20 in x Translate -20 in x

1 0 200 1 00 0 1

"

#

$ $ $

%

&

' ' '

1 0 −200 1 00 0 1

#

$

% % %

&

'

( ( (

WhyBlack?

Page 3: Geometric Image Manipulationcs510/yr2017sp/more... · Image Manipulation Lecture #3 Monday, January 23, 2017 Programming Assignment #1 Image Manipulation: Context • To start with

Scale Applied to Images

Scale Uniformly by 2 Scale Uniformly by 0.5

2 0 00 2 00 0 1

"

#

$ $ $

%

&

' ' '

0.5 0 00 0.5 00 0 1

"

#

$ $ $

%

&

' ' '

Note the

origin

Rotation Applied to Images

Rotate by 15° Rotate by -15°

Note that a positive rotation rotates the positive X axis toward the positive Y axis

Composition of MatricesTo rotate by θ around a point (x,y):

1 0 x0 1 y0 0 1

!

"

###

$

%

&&&

cos θ( ) −sin θ( ) 0

sin θ( ) cos θ( ) 0

0 0 1

!

"

####

$

%

&&&&

1 0 −x0 1 −y0 0 1

!

"

###

$

%

&&&=

1 0 x0 1 y0 0 1

!

"

###

$

%

&&&

cos θ( ) −sin θ( ) ysin θ( )− xcos θ( )sin θ( ) cos θ( ) −xsin θ( )− ycos θ( )0 0 1

!

"

####

$

%

&&&&

=

cos θ( ) −sin θ( ) ysin θ( )− xcos θ( )+ xsin θ( ) cos θ( ) −xsin θ( )− ycos θ( )+ y0 0 1

!

"

####

$

%

&&&&

Affine Transformations• All the similarity transforms can be combined

into one generic matrix:

• But! This matrix does more. What?– hint: 2 more transformations.– hint: 6 degrees of freedom.

• How can you specify this matrix?

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

11001yx

fedcba

vu Hint: diagonal

terms are not equal, and b ¹ -d.

Equivalent to adding 2 shear parameters,or unequal scaling & 1 shear parameter.

Affine Examples: Shear

1 0.5 00 1 00 0 1

"

#

$ $ $

%

&

' ' '

1 1 00 1 00 0 1

"

#

$ $ $

%

&

' ' '

Similarity vs. Affine Matrices• Similarity : 4 DOF

• Affine : 6 DOF

!!!

"

#

$$$

%

&

!!!

"

#

$$$

%

&

=

!!!

"

#

$$$

%

&

11001yx

fedcba

vu

uv1

!

"

###

$

%

&&&=

a b c−b a d0 0 1

!

"

###

$

%

&&&

xy1

!

"

###

$

%

&&&

Page 4: Geometric Image Manipulationcs510/yr2017sp/more... · Image Manipulation Lecture #3 Monday, January 23, 2017 Programming Assignment #1 Image Manipulation: Context • To start with

Specifying Affine Transformations

• There are six unknowns in the matrix (a through f)• If you specify one point in the source image and a

corresponding point in the target image, that yields two equations:

• So providing three point-to-point correspondences specifies an affine matrix

feydxvcbyaxu

iii

iii

++=

++=

Affine Specification: Example

There is one affine transformation that will map the green point on the right to the green point on the left, and align the red and blue points also.

Solving Affine TransformationsThese linear equations can be easily solved:

– WLOG, assume x1=y1=0– then u1= c and v1 = f– so:

( )

( )

( )( ) ( )

2323

123232

32

23

122

313

122

3133

2

23

3132

2123

2

212

1333

1222

xyyxuuxuux

yxyx

uuxxuu

b

uuxx

uubyxyx

byuux

byuuxxbyuu

a

ubyaxuubyaxu

−−

−−−=

−−

−−−=

−−−=""#

$%%&

'−

−−=−−

−−=

++=

++=

Calculation of a, b & cis independent of calculation of e, f & g.

Solving Affine (cont.)

• This can be substituted in to solve for a• The same process with y’s solves for d,e,f• About the WLOG:

– It was true because you can translate the original coordinate system by (-x1, -y1)

– So what do you do to compensate?

• Alternatively, set up a system of linear equations and solve...– Will show this for a harder case shortly….