Sunteți pe pagina 1din 40

OPERATII GEOMETRICE

1
Cum definim operatiile geometrice

 Clasa de operatii ce modifica structura de vecinatate a pixelilor


din imagine (structura organizarii spatiale a imaginii).

 Transformarile geometrice permit deplasarea pixelilor in


imagine,pe noi pozitii.

 Model intuitiv: imaginea este imprimata pe o foaie subtire de


2
cauciuc, care poate fi deformata oricum. (Casteleman)
Operatii geometrice fara constrangeri

sferturile imaginii mutare “aleatore”


sunt interschimbate a pixelilor
Daca miscarea oricarui pixel este impusa in mod independent de
miscarea celorlalti pixeli, poate apare un efect de amestecare (sau
de rupere) a continutului vizual.
Constrangere: legea de descriere a miscarii pixelilor NU este aleatoare
si este invarianta spatial (toti pixelii au o miscare descrisa de aceleasi
ecuatii).
3
Definirea operatiilor geometrice
Transformarea = ecuatia de modificare a coordonatelor pixelilor

x'  X ( x, y)
x’ , y’ : y'  Y ( x, y) x, y :
coordonatele pixelilor
coordonatele pixelilor
inainte de transfomare
dupa transfomare
X, Y:
ecuatiile de modificare
a coordonatelor

Formele particulare ale functiilor de transformare a coordonatelor,


X(x,y) si Y(x,y) particularizeaza transformarile geometrice.
4
Coordonatele imaginii
y Originea este coltul din stanga sus,
(0,0)
coordonatele cresc de la stanga la dreapta si
de sus in jos.

Prima coordonata este de linie.

Coordonatele pot fi continue (x, y)


sau discrete (m, n)
x
Transformarea la sistemul cartezian plan uzual :
yplan
x plan  y

xplan
y plan   x
5
Transformari geometrice afine
elementare
Translatia Deplasarea in plan a continutului imaginii;
echivalenta cu schimbarea originii sistemului
de coordonate atasat imaginii.

x'  X ( x, y )  x  x0 Toate punctele se deplaseaza


dupa aceeasi directie si cu
y '  Y ( x, y )  y  y0 aceeasi distanta.

Parametri : x0, y0 – deplasari pe verticala/ orizontala.

Pastreaza distantele dintre pixeli.

6
Transformari geometrice afine
elementare
(0,0) y
Translatia

(0,0) y

(x0, y0)
(0,0) y’ y’
(0,0)
x

x’ x’
7
Transformari geometrice afine
elementare
Scalarea Intinderea/ comprimarea continutului imaginii
dupa una sau ambele axe de coordonate.
NU pastreaza distantele dintre pixeli
x '  X ( x, y )  x
y '  Y ( x, y )   y
,   0
Parametri : ,  - factori de scalare pe
verticala/ orizontala

,  > 1 : marire/ intindere


,  < 1 : micsorare/ comprimare  =  : scalare omogena
8
Transformari geometrice afine
elementare
Scalarea
y (0,0) y’
(0,0)

 > 1,  < 1
=>

x x’

 < 1,  > 1
=>
9
Transformari geometrice afine
elementare
Inclinarea Inclinarea imaginii reprezinta deplasarea pixelilor
dupa o singura coordonata, dependent de pozitia
globala in imagine, cealalta coordonata ramanand
nemodificata .
x '  X ( x, y )  x x'  X ( x, y )  x  sy
y '  Y ( x, y )  tx  y y '  Y ( x, y )  y
t 0 s0
inclinare pe orizontala inclinare pe verticala

Parametri : t, s – coeficienti de inclinare.


NU pastreaza distantele dintre pixeli.
10
Transformari geometrice afine
elementare
Inclinarea pe orizontala x '  X ( x, y )  x
y '  Y ( x, y )  tx  y
punctele de x=0 sunt puncte fixe t 0
(0,0) y (0,0) y’

x x’

11
Transformari geometrice afine
elementare
x'  X ( x, y )  x  sy
Inclinarea pe verticala
y '  Y ( x, y )  y
punctele de y=0 sunt puncte fixe s0
(0,0) y (0,0) y’

x x’

12
Transformari geometrice afine
elementare
Rotatia Deplasare circulara a pixelilor in jurul centrului de
rotatie-originea sistemului de coordonate.

x'  X ( x, y )  x cos   y sin 


y '  Y ( x, y )   x sin   y cos 

Parametru :  - unghiul de rotatie

Pastreaza distantele dintre pixeli.

13
Transformari geometrice afine
elementare y’

Rotatia

y’

(0,0) y

(0,0) y x’

x’
x
14
x
Transformari geometrice afine
elementare
Reflexia fata de un centru de reflexie (x0,y0)

Pozitie initiala si pozitia finala a fiecarul pixel formeaza un


segment de dreapta al carui centru este centrul de reflexie.
(0,0) y
(x’, y’)
x'  X ( x, y )  2 x0  x
y '  Y ( x, y )  2 y0  y
(x0, y0)
(x, y)

x
15
Transformari geometrice afine
elementare
Reflexia fata de un centru de reflexie (x0,y0)
50
x'  X ( x, y )  2 x0  x
y '  Y ( x, y )  2 y0  y
100

150

200 (0,0) y
250
50
(x’, y’)
50 100 150 200 250

x0  0 100

(x0, y0)
y0  0
150

200
(x, y)

x
250
50 100 150 200 250

16
Transformari geometrice afine
compuse
Reflexia fata de o axa de reflexie

Pozitie initiala si pozitia finala a fiecarul pixel formeaza un


segment de dreapta a carui mediatoare este axa de reflexie.
y ' y 1 (0,0) y

x' x m
(x’, y’)
y  mx  n y ' mx' n

2
m 1 m2  1
1  m2 2m 2mn
x '  X ( x, y )  x  y  axa de (x, y)
1  m2 1  m2 1  m2 reflexie
2m 1  m2 2n y=mx+n x
y '  Y ( x, y )  2
x 2
y
1 m 1 m 1  m2
17
Transformari geometrice afine
elementare
Reflexia fata de o axa de reflexie: cazuri particulare
axa orizontala: x = k = ct (1/m = 0, -n/m = k)
1  m2 2m 2mn
x '  X ( x, y )  x y
1 m 2
1 m 2
1  m2 x '  X ( x, y )  2 k  x
2m 1  m2 2n y '  Y ( x, y )  y
y '  Y ( x, y )  x  y 
1  m2 1  m2 1  m2

axa verticala: y = k = ct (m=0, n=k)


1  m2 2m 2mn x '  X ( x, y )  x
x '  X ( x, y )  2
x 2
y
1 m 1 m 1  m2 y '  Y ( x , y )  2k  y
2m 1  m2 2n
y '  Y ( x, y )  x  y 
1  m2 1  m2 1  m2
18
Forma matriceala a transformarilor
geometrice elementare
 x'   x  x '   x   x0 
  
A   B 1. Translatia        
 y'   y  y '   y   y0 
 x'    0  x 
2. Scalarea      
 y '   0   y 
3a. Inclinarea pe orizontala
4. Rotatia
 x'  1 0  x 
       x'   cos  sin   x 
 y '   t 1  y       
 y '    sin  cos   y 
3b. Inclinarea pe verticala
 x'   1 s  x 
     
 y '   0 1  y 
19
Forma matriceala a transformarilor
geometrice elementare
 x'   x
   A   B
 y'   y
5. Reflexia fata de un punct
 x'    1 0  x   2 x0 
        
 y '   0  1 y   2 y0 
6. Reflexia fata de o axa
 1  m2 2m   2mn 
x '   x  2 
   1  m2 2  
1  m     1  m 
  
 y '   2m 1  m 2  y   2n 
  2 
 2 
 1  m2 1 m   1 m 
20
Transformari geometrice compuse
Compunere = iterare de transformari elementare

Din punctul de vedere al exprimarii analitice,


compunerea este simpla in forma matriciala ...
dar translatia nu are aceeasi forma matriciala si nu
poate fi exprimata ca un produs matricial.

Solutie : coordonatele omogene


 x
 x  
    y 
 y 1
 
21
Forma matriceala omogena a
transformarilor geometrice
1. Translatia 2. Scalarea
 x'   1 0 x0  x   x'    0 0  x 
         
 y'    0 1 y0  y   y'    0  0  y 
 1  0 0 1  1  1 0
      0 1  1 
3a. Inclinarea pe orizontala 3b. Inclinarea pe verticala
 x'   1 0 0  x   x'   1 s 0  x 
         
 y '    t 1 0  y   y '    0 1 0  y 
 1   0 0 1  1   1   0 0 1  1 
    4. Rotatia     
 x'   x  x'   cos  sin  0  x 
        
 y'   A y   y '     sin  cos  0  y 
221  1 1  0 0 1  1 
      
Forma matriceala omogena a
transformarilor geometrice
5. Reflexia fata de un punct
 x'    1 0 2 x0  x 
    
 y '    0  1 2 y0  y 
1  0 0 1  1 
    
6. Reflexia fata de o axa, y=mx+n
 1  m2 2m  2mn 
 2 2 2

 x'   1  m 1 m 1  m  x 
   2m 1  m2 2n  
 y'    2
y
2  
1  1  m 1  m2 1 m  
  0 0 1  1 
 
 
 
23
Descompunerea operatiilor
geometrice complexe
Forma generala,
 x'   a11 a12 x0  x 
    
in coordonate omogene:  y '    a21 a22 y0  y 
1  0 0 1  1 
  
Coeficientii aij provin numai din scalare, rotatie si inclinare.

 a11 a12    0  1 s  cos  sin  


      
 a21 a22   0   0 1   sin  cos  
dandu-se o serie de transf.
dandu-se o transf. afina, elementare, se gaseste o
se gasesc transf. elementare transf. echivalenta unica.
din care e constituita

24
Descompunerea operatiilor
geometrice complexe
dandu-se o serie de transf.
elementare, se gaseste o
transf. echivalenta unica.
Ex. Transformarea echivalenta unei rotatii cu 45º (=45º), inclinare
verticala cu coeficient de 0.1 (s=0.1), scalare orizontala de 2 (=2)
si scalare verticala de 0.5 (=0.5).
 a11 a12    0  1 s  cos  sin  
      
 a21 a22   0   0 1   sin  cos  
 a11 a12   0.5 0  1 0.1 2 / 2 2 / 2
      
 a21 a22   0 2  0 1   2 / 2 2 / 2 
 a11 a12   0.3535 0.3889 
    
 a21 a22    1.4142 1.2728 
25
Descompunerea operatiilor
geometrice complexe
dandu-se o transf. afina,
se gasesc transf. elementare
din care e constituita

 a11 a12    cos   s sin   sin   s cos  


    
 a21 a22     sin   cos  

  a212  a222 a21


   arctan
a22

a11a22  a12a21  a12a22  a11a21


 s
2
a21 2
 a22 a11a22  a12a21

26
Aplicatii
Aplicatii Morphing
Cunoastem pozitiile unor pixeli
inainte si dupa transfomare,
definind conturul unor regiuni
poligonale.

etc …

26 C. VERTAN
LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

Rezulta un set de K sisteme de ecuatii cu aceleasi 4 necunoscute aij


Sistemul este in general supra-dimensionat si solutia nu poate fi
decat aproximativa (se folosesc metode de tip minimizarea
erorii patratice medii).
27
Operatii geometrice
Pentru o singura zona, utilizand un model
biliniar:
x'  X ( x, y )  k0 x  k1 y  k 2 xy  k3
y '  Y ( x, y )  k 4 x  k5 y  k6 xy  k7

Valorile (constantele) k trebuie deteminate. Avand cele 4


puncte ale zonei inainte si dupa modificare se obtin
constantele cautate.
Pot rezulta coordonate de valori reale.

28
Operatii geometrice

29
Transformari geometrice neliniare
Efectul de perna

efect de perna pe orizontala


H  H  2 y
x '  X ( x, y )    y  1  Ax sin  
2  2  H W
y '  Y ( x, y )  y

efect de perna pe verticala


x '  X ( x, y )  x deplasari controlate dupa
o lege sinusoidala
W  W  2 x
y '  Y ( x, y )    x  1  Ay sin  
2  2  W H

30
Implementarea operatiilor
geometrice
In practica, exista doua componente:
1. unde se “muta” fiecare pixel
transformarea geometrica
2. ce valoare este plasata in noua pozitie ?
interpolarea
In practica, imaginile sunt discrete: coordonatele tuturor pixelilor
sunt numere intregi.
Valorile coordonatelor ce se obtin dupa transformarea geometrica
sunt de cele mai multe ori numere reale.
Rezulta necesitatea de a introduce o modalitate de a “fabrica”
coordonate intregi.
31
Implementarea operatiilor
geometrice
Varianta 1: transportul pixelilor (pixel carry-over)
Varianta 2: umplerea pixelilor (pixel filling)

m x’

T y’
n
(x’, y’) coordonate ne-intregi
(m, n) coordonate intregi
dupa transformare
inainte de transformare

32
Implementarea operatiilor
geometrice
Transportul pixelilor (pixel carry-over)

m x’

T
n y’
(x’, y’) coordonate ne-intregi
(m, n) coordonate intregi dupa transformare
inainte de transformare
valoarea trebuie distribuita la
pixelii vecini

33
Implementarea operatiilor
geometrice
Probleme ale implementarii directe
x '  X ( x, y )  2 x
coordonate ce nu apar
y '  Y ( x, y )  y / 2
0 1 2 3 4 5 6 0 1 6
2 3 4 5
0 0
1 1
2 2
3 3
4 4
5 5
coordonate initiale coordonate transformate

coordonate ne-intregi
34
Implementarea operatiilor
geometrice
Umplerea pixelilor (pixel filling)

x
m’

y T-1 n’
(x, y) coordonate ne-intregi (m’, n’) coordonate intregi
inainte de transformare dupa transformare

valoarea (inexistenta in imaginea reala


initiala) trebuie obtinuta prin interpolare
din valorile pixelilor vecini.
35
Implementarea operatiilor
geometrice
Metode de interpolare pozitii de coordonate intregi
n n+1 in care sunt cunoscute valorile
imaginii f(m, n), f(m+1, n), ...
m
x pozitie de coordonate ne-intregi
m+1 in care se doreste calcularea valorii
imaginii, presupusa continua pe
domeniul [m, m+1] x [n, n+1]
y
Cel mai simplu: interpolare de ordinul 0

Valoarea in (x,y) este valoarea din cel mai apropiat


punct de coordonate intregi.
36
Implementarea operatiilor
geometrice
Interpolarea biliniara
Interpolare liniara (de ordinul 1) dupa fiecare dimensiune.
f1=f ([x]) f([x]1)f([x]) ([x]1)[x]
f (x) 
f2=f ([x]+1) f(x)f([x]) x[x]

[x] x [x]+1
f ([ x ]  1)  f ([ x ])
f ( x)  x  [ x ]  f ([ x ])
([ x ]  1)  [ x ]
f ( x)  ( f 2  f1 )( x  [ x])  f1
37
Implementarea operatiilor
geometrice
Interpolarea biliniara f1 = f(m, n)
f1 f2 = f(m+1, n)
f3 = f(m, n+1)
f3 f4 = f(m+1, n+1)
g1
f (x, y)
f2 (m,n)
m = [x]
g2 (m,n+1) n = [y]
f4
x

(m+1,n) (m+1,n+1)

g1 este interpolat liniar din f1 si f2


f este interpolat liniar din g1 si g2
g2 este interpolat liniar din f3 si f4
38
Implementarea operatiilor
geometrice
Interpolarea biliniara f1 = f(m, n)
f1 f2 = f(m+1, n)
f3 = f(m, n+1)
f4 = f(m+1, n+1)
g1 f3
f (x, y) m = [x]
f2 (m,n)
n = [y]
g2 (m,n+1)

(m+1,n) (m+1,n+1)
g1  ( f 2  f1 )( x  m)  f1
g1 este interpolat liniar din f1 si f2
g 2  ( f 4  f 3 )( x  m)  f 3
g2 este interpolat liniar din f3 si f4
f este interpolat liniar din g1 si g2 f  ( g 2  g1 )( y  n )  g1
39
Implementarea operatiilor
geometrice
g1  ( f 2  f1 )( x  m)  f1 Interpolarea biliniara
g 2  ( f 4  f 3 )( x  m)  f 3

f  ( g 2  g1 )( y  n)  g1
f  ( f 4  f 3 )( x  m)  f 3  ( f 2  f1 )( x  m)  f1 ( y  n) 
 ( f 2  f1 )( x  m)  f1

f   f 4  f 3  f 2  f1  x  m ( y  n)  ( f 2  f1 )( x  m) 
 ( f 3  f1 )( y  n)  f1
f    x  m ( y  n)   ( x  m)   ( y  n)  
40

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