Sunteți pe pagina 1din 49

Transform

ari geometrice
Interpolarea
Coliniera proiectiv
a

Procesarea Imaginilor Digitale


Curs - Transformari geometrice - Interpolare

Universitatea Transilvania din Brasov

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Cuprins

Transformari geometrice

Interpolarea

Coliniera proiectiva

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari geometrice

Translatia.

Scalarea.

Rotatia.

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari geometrice - Translatia

Translatia unei imagini f (x , y )


pe orizontal
a cu factorul x este gT (x + x , y ) = f (x , y ).
pe vertical
a cu factorul y este gT (x , y + y ) = f (x , y ).
n ambele directii cu factorii x respectiv y : gT (x + x , y + y ) = f (x , y ).

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari geometrice - Scalarea

Translatia unei imagini f (x , y )


pe orizontal
a cu factorul s1 este gS (s1 x , y ) = f (x , y ).
pe vertical
a cu factorul s2 este gS (x , s2 y ) = f (x , y ).
n ambele directii cu factorii s1 respectiv s2 : gS (s1 x , s2 ) = f (x , y ).

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari geometrice - Rotatia n jurul originii


Imaginea rotit
a:
g(x 0 , y 0 ) = f (x , y ),
unde

x0
y0

cos sin
sin
cos

x
y

Matricea de rotatie:
cos sin
sin
cos

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari geometrice - Rotatia n jurul unui punct dat

Imaginea rotit
a: n jurul unui punct oarecare (x0 , y0 ):
g(x 0 , y 0 ) = f (x , y ),
unde

x0
y0

cos sin
sin
cos

x x0
y y0

Procesarea Imaginilor Digitale

x0
y0

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea - Considerente generale

Aplicarea directa a formulelor goluri imaginea rezultat.


Scalarea: informatie numai pentru pixelii de pe pozitii multiplii ai factorului de
scalare.
Rotatia: pierdere de informatie prin trunchierie,

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea - Considerente generale

a)

d)

b)

c)

e)

f)
Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea - Fundamentare matematica

Problematic
a: Se cunosc
f (xi ) = yi , i = 0, n,
cu x0 < x1 < . . . < xn .

Sa se aproximeze f (x ) x [x0 , xn ]

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Polinomul de interpolare al lui Lagrange

L(Pn ; x0 , . . . , xn , y0 , . . . , yn ) =
=

n
X
i=0

yi

(x x0 ) . . . (x xi1 )(x xi+1 ) . . . (x xn )


(xi x0 ) . . . (xi xi1 )(xi xi+1 ) . . . (xi xn )

n = 1 - interpolare liniara / biliniara.


n = 2 - interpolare patratica / bipatratica.
n = 3 - interpolare cubica / bilcubica.

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea liniara

Interpolarea liniara prin doua puncte x0 si


x1 , unde y0 = f (x0 ) si y1 = f (x1 ):

y2
f(x)
y

f (x ) y1

y1

x x1
x x0
y0
=
x1 x0
x1 x0

= y0 +
x1

y1 y0
(x x0 )
x1 x0

x2

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea biliniara - Modelare matematica

Date de intrare:
Patru puncte (x0 , y0 ), (x0 , y1 ), (x1 , y0 ), (x1 , y1 ), unde x0 < x1 si y0 < y1 .
Valorile functiei n cele 4 puncte:
f (x0 , y0 ) = f00 f (x0 , y1 ) = f01
f (x1 , y0 ) = f10 f (x1 , y1 ) = f11

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea biliniara - Modelare matematica

f(x1 ,y1)

f(x1 ,y2 )

1
f(x, y2 )

f(x, y1)

f(x, y)
y2

Interpolare liniara dupa axa 0x ntre (x0 , y0 ) si


(x1 , y0 ):

f(x2 ,y2 )

f (x , y0 ) =

y1
0

f(x2 ,y1)

x x1
x x0
f10
f00
x1 x0
x1 x0

x1

Interpolare liniara dupa axa 0x ntre (x0 , y1 ) si


(x1 , y1 ):

x2

f (x , y1 ) =

x x0
x x1
f11
f01
x1 x0
x1 x0

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea biliniara - Modelare matematica

f(x1 ,y1)

f(x1 ,y2 )
f(x, y2 )
f(x, y1)

f(x, y)
y2

f(x2 ,y2 )

y
y1
0

f(x2 ,y1)

Interpolareliniar dupa axa 0y ntre f (x , y0 ) si


f (x , y1 ):

x1

f (x , y )

y y0
y y1
f (x , y1 )
f (x , y0 )
y1 y0
y1 y0

x2

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea biliniara - Scalarea imaginilor


0

Imagine sursa imagine rezultat:


g(x 0 , y 0 ) = g(ax , ay ) = f (x , y )
Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Interpolarea biliniara - Scalarea imaginilor


0

5
6
7

Imagine rezultat imagine sursa:


g(x 0 , y 0 ) = f (xc , yc ) = f

x y
,
a a

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Scalarea imaginilor - Trunchierea valorilor coordonatelor

a)

b)
c)

Figure: a) Imaginea de test originala; b) Fragment din imaginea scalata cu factorul 3 n ambele
directii; c) Fragment din imaginea scalata cu factorul 5 n ambele directii.
Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Scalarea imaginilor - Interpolare

x xc
y

x+1
1

(x 0 , y 0 ) din imaginea rezlutat calculam


xc =

yc
y+1

x0
y0
, yc =
a
a

definim x = [xc ], y = [yc ];

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Scalarea imaginilor - Interpolare

Interpolam dupa 0x :
f (xc , y ) =

xc x
xc (x + 1)
f (x + 1, y )
f (x , y ) =
x +1x
x +1x

= (xc x ) (f (x + 1, y ) f (x , y )) + f (x , y )

f (xc , y + 1) =

xc x
xc (x + 1)
f (x + 1, y + 1)
f (x , y + 1) =
x +1x
x +1x

= (xc x ) (f (x + 1, y + 1) f (x , y + 1)) + f (x , y + 1)

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Scalarea imaginilor - Interpolare

Interpolam dupa 0y :
g(x 0 , y 0 ) = f (xc , yc ) =

yc y
yc (y + 1)
f (xc , y + 1)
f (yc y )
y +1y
y +1y

= (yc y ) (f (xc , y + 1) f (xc , y )) + f (xc , y ).

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Scalarea imaginilor - Interpolare


a)

b)

c)

(a) Imaginea sursa.


(b) Fragment din imaginea scalata cu
factorul 5, fara interpolare.
(c) Fragment din imaginea scalata cu
factorul 5 cu interpolare biliniara.

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Rotatia imaginilor - Interpolare


0

Imagine sursa imagine rezultat:


(

x 0 = (x x0 ) cos (y y0 ) sin + x0
y 0 = (x x0 ) sin + (y y0 ) cos + y0
Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Rotatia imaginilor - Interpolare

Imagine rezultat imagine sursa:


(

xc = (x 0 x0 ) cos + (y 0 y0 ) sin + x0
yc = (x 0 x0 ) sin + (y 0 y0 ) cos + y0

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Rotatia imaginilor - Interpolare

a)

b)

c)

Figure: a) Imagine de test; b) Imaginea rotita succesiv de 5 ori cu un unghi = 200 , cu


rotunjirea valorilor coordonatelor calculate n imaginea sursa; c) Imaginea rotita succesiv de 5
ori cu un unghi = 200 , folosind interpolare biliniara;.

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Tranformarile geometrice ca produs de matrice

Rotatia:
x0
y0
Scalarea:

=
x0
y0

cos sin
sin
cos

sx 0
0 sy

x
y

x
y

Translatia: nu poate fi reprezentata ca produs de matrice n sistemul x 0y .

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Coordonate omogene

Extinderea vectorilor bidimensionali cu o a treia componenta:

~v =

x
y

x
hx

y = hy
h
h



x1
x2
x
x2
y1
y2
x1

=
si y =
=
y1 y2 y x =
h1
h2
h1
h2
h1
h2
1

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformarile geometrice n coordonate omogene


Translatia cu dx , dy :

x0
1 0 dx
x
0

y = 0 1 dy y
1
0 0 1
1
Rotatia cu :

x0
cos sin 0
x
0

y
y
sin

cos

0
=

1
0
0 1
1
Scalarea cu sx , sy :

x0
sx 0 0
x

0
y = 0 sy 0 y
1
0 0 1
1
Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari afine

x0
a00 a01 a02
x
0

y = a10 a11 a12 y


1
0
0
1
1
Scalarea & Rotatia:
a00 a01
a10 a11

Translatia:
a02
a12

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari afine
P1

P3
P2

Propriet
ati:
Transforma drepte n drepte.
Transforma dreptunghiuri n paralelipipede.

P'2

Pastreaza rapoartele ntre distante egale.

P'1

P'3
Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Problematica


P0

P'1

P1

Observatii:

P'0

NU poate fi obtinuta printr-o


transformare afina.
Este necesara o transformare
proiectiva:

P3
P0

P2

P'2

P'3

P1

P'0

x0
x
0

y = A y
h
1

P'1

unde

P3
P2

P'3

P'2

a11 a12 a13

A = a21 a22 a23


a31 a32 a33

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Fundamentare matematica

Din

rezulta:

x0
x
0

y = A y
h
1
h1 P10 = A P1 h3 P30 = A P3
h2 P20 = A P2 h4 P40 = A P4

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Fundamentare matematica

In plus P1 , P2 , P3 , P4 - liniar dependete si P 0 , P 0 , P 0 , P 0 - liniar dependente


1
2
3
4

b1
x1 x2 x3
b1

P4 = b1 P1 + b2 P2 + b3 P3 = (P1 P2 P3 ) b2 = y1 y2 y3 b2 = P b
b3
1 1 1
b3

x10 x20 x30


b10
b10
0
0
0 0
0 0
0 0
0
0
0 0
0
0
0
P4 = b1 P1 + b2 P2 + b3 P3 = (P1 P2 P3 ) b2 = y1 y2 y3 b2 = P 0 b 0
b30
1 1 1
b30

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Fundamentare matematica

Avem:
P4 = P b si P40 = P 0 b 0 cu P = (P1 P2 P3 ), P 0 = (P10 P20 P30 ).
P1 , P2 , P3 - liniar independente si P10 , P20 , P30 - liniar independente.
Rezulta: P, P 0 inversabile
Deci:
b = P 1 P4
b 0 = (P 0 )1 P40

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Fundamentare matematica


Calcul h1 , h2 , h3 n functie de h4 :
A P4 = A P b = A (P1 b1 + P2 b2 + P3 b3 ) =

3
X

A Pi bi =

i=1

3
X

hi Pi0 bi

i=1

si
A P4 = h4 P40 = h4 P10 b10 + P20 b 0 + P30 b30 =


3
X
i=1

O solutie a sistemului:
3
X

hi Pi0 bi =

i=1

3
X

h4 Pi0 bi0

i=1

este:
hi =

bi0
h4 , i = 1, 2, 3
bi
Procesarea Imaginilor Digitale

h4 Pi0 bi0

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Fundamentare matematica

Matricea A de transformare:
A P = A (P1 P2 P3 ) = (h1

P10 ,

De unde:
A = h4

h2

 0
b

b1

P10

P20 ,

h3

P30 )

= h4

b20 0 b30 0
P
P P 1
b2 2 b3 3


Iar h4 6= 0 arbitrar. Se considera h4 = 1.

Procesarea Imaginilor Digitale

 0
b

b1

P10

b20 0 b30 0
P
P
b2 2 b3 3

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Algoritm


1

Se definesc punctele P1 , P2 , P3 P4 si P10 , P20 , P30 , P40 a. . cele doua patrulatere sa


nu fie degenerate.

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Algoritm


1

Se definesc punctele P1 , P2 , P3 P4 si P10 , P20 , P30 , P40 a. . cele doua patrulatere sa


nu fie degenerate.
Se calculeaza vectorii b si b 0 .

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Algoritm


1

Se definesc punctele P1 , P2 , P3 P4 si P10 , P20 , P30 , P40 a. . cele doua patrulatere sa


nu fie degenerate.

Se calculeaza vectorii b si b 0 .

Se considera h4 = 1 si se calculeaza h1 , h2 , h3 dupa formula.

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Algoritm


1

Se definesc punctele P1 , P2 , P3 P4 si P10 , P20 , P30 , P40 a. . cele doua patrulatere sa


nu fie degenerate.

Se calculeaza vectorii b si b 0 .

Se considera h4 = 1 si se calculeaza h1 , h2 , h3 dupa formula.

Se determina matricea de transformare A

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Algoritm


1

Se definesc punctele P1 , P2 , P3 P4 si P10 , P20 , P30 , P40 a. . cele doua patrulatere sa


nu fie degenerate.

Se calculeaza vectorii b si b 0 .

Se considera h4 = 1 si se calculeaza h1 , h2 , h3 dupa formula.

Se determina matricea de transformare A

Pentru fiecare pixel (x , y ) reprezentat prin (x , y , 1, )T din imaginea originala se


determina pixelul corespundent:
x0
x
0

y =A y
1
h

Pixelul corespunzator lui (x , y ) din imaginea rezultat va fi x0 /h, y0 /h


Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Exemplu

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Interpolare

Problem
a: - prin transformarea de la imaginea sursa catre imaginea rezultat apar
pixeli n care lipseste informatia!
Solutie: - transformarea rezultat sursa + interpolare:
Se calculeaza matricea A0 prin care P = A0 P 0 cu calcule similare ca cele prezentate
anterior.

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Interpolare

Problem
a: - prin transformarea de la imaginea sursa catre imaginea rezultat apar
pixeli n care lipseste informatia!
Solutie: - transformarea rezultat sursa + interpolare:
Se calculeaza matricea A0 prin care P = A0 P 0 cu calcule similare ca cele prezentate
anterior.
Pentru fiecare pixel (x 0 , y 0 , 1) din imaginea rezultat se calculeaza pixelul de
provenienta:(xs , ys , h) din imaginea sursa (xs , ys , h = valori reale).

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Interpolare

Problem
a: - prin transformarea de la imaginea sursa catre imaginea rezultat apar
pixeli n care lipseste informatia!
Solutie: - transformarea rezultat sursa + interpolare:
Se calculeaza matricea A0 prin care P = A0 P 0 cu calcule similare ca cele prezentate
anterior.
Pentru fiecare pixel (x 0 , y 0 , 1) din imaginea rezultat se calculeaza pixelul de
provenienta:(xs , ys , h) din imaginea sursa (xs , ys , h = valori reale).
Se normeaza: xc = xs /hs , yc = ys /hs .

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Interpolare

Problem
a: - prin transformarea de la imaginea sursa catre imaginea rezultat apar
pixeli n care lipseste informatia!
Solutie: - transformarea rezultat sursa + interpolare:
Se calculeaza matricea A0 prin care P = A0 P 0 cu calcule similare ca cele prezentate
anterior.
Pentru fiecare pixel (x 0 , y 0 , 1) din imaginea rezultat se calculeaza pixelul de
provenienta:(xs , ys , h) din imaginea sursa (xs , ys , h = valori reale).
Se normeaza: xc = xs /hs , yc = ys /hs .
Se folosesc formulele de interpolare pentru a calcula valoearea pixelului (x 0 , y 0 ) din
valorile pixelilor ([xc ], [yc ]), ([xc ] + 1, [yc ]), ([xc ], [yc ] + 1), ([xc ] + 1, [yc ] + 1).

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Exemplu

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Transformari proiective - Exemplu

Procesarea Imaginilor Digitale

Transform
ari geometrice
Interpolarea
Coliniera proiectiv
a

Rezumat

Transformarile geometrice de baza: translatia, rotatia, scalarea.


Interpolarea biliniara.
Problematica interpolarii.
Polinomul de interpolare al lui Lagrange.
Interpolarea liniara - interpolarea biliniara.
Aplicarea interpolarii pentru imagini dupa scalare si rotatie.

Colinierea proiectiva.
Reprezentarea n coordonate omogene.
Transformari afine.
Transformari proiective - colonierea proiectiva.

Procesarea Imaginilor Digitale

S-ar putea să vă placă și