Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » scoala » informatica » grafica design

Transformari geometrice 2D uzuale - Transformarile de perspectiva, Interpolarea luminantei


Definitii

Transformarile geometrice au aplicatii numeroase in analiza imaginilor si in compresie. Ele permit, de exemplu, corectia unor distorsiuni geometrice produse la captarea imaginii, modelarea schimbarii parametrilor de pozitie, orientare si transfocare a camerei, estimarea miscarii sau modelarea transformarii imaginii. 

O transformare geometrica proiecteaza fiecare pixel, de coordonate (x, y), al imaginii de intrare la o noua pozitie, (x', y'). Transformarea poate fi descrisa prin ecuatiile



x' = Tx(x, y),

(5.1)

y' = Ty(x, y).

(5.2)




 



Transformarile Tx Ty pot fi cunoscute dinainte sau pot fi estimate pe baza imaginii initiale si a celei transformate.


1. Transformari geometrice 2D uzuale


Transformarea geometrica generala este aproximata frecvent cu ajutorul unor ecuatii polinomiale. Citeva transformari particulare de interes mai larg sunt prezentate in continuare.


1.1. Transformarile afine

Ecuatiile de transformare sunt

x' = a0 + a1x + a2 y,

(5.3)

y' = b0 + b1x + b2 y.

(5.4)




 




Transformarile afine includ:

Translatia

x' = a0 + x,

(5.5)

y' = b0 + y.

(5.6)




 

x' = xcosq + ysinq

(5.7)

y' = -xsinq + ycosq

(5.8)




 



rotatia in planul imaginii, cu unghiul q fata de origine



rescalarea cu factor diferit pe cele doua directii

x' = ax,

(5.9)

y' = by

(5.10)




 

x' = x + ytgj

(5.11)

y' = y.

(5.12)




 




inclinare cu unghiul j



Transformarile de perspectiva

Ecuatiile transformarilor de perspectiva sunt

,

(5.13)

(5.14)




 




Transformarile de perspectiva, si transformarile afine corespund proectiilor de perspectiva, respectiv ortografice ale unui corp solid tridimensional si nedeformabil ce se poate misca arbitrar.


1.2. Interpolarea luminantei

Implementarea unei transformari geometrice particulare presupune inversarea ecuatiilor (5.1), (5.2). Aplicatia este privita din perspectiva imaginii de iesire. Pentru fiecare punct, de coordonate (x', y') al acestei imagini, se cauta coordonatele (x, y) ale pixelului din imaginea de intrare ce l-a generat. Practic, trebuie sa atribuim la iesire intensitatea:

gx', y' = fx, y.      

(5.15)






 



Problema este ca valorile (x, y) obtinute in urma calculelor nu sunt in general numere intregi, in timp ce imaginea fx, y este definita numai pentru un numar finit de puncte (Fig. 5.1), corespunzand unor valori intregi ale coordonatelor (x, y). Solutia pentru estimarea intensitatii in punctele nesituate pe grila de esantionare a imaginii de intrare o constituie interpolarea.




Fig. 5. 1. Problema interpolarii imaginii


Fie m, n coordonate intregi, pentru care imaginea de intrare, fm,n , este definita. Imaginea interpolata pentru o pereche de coordonate (x, y) arbitrara este

           

(5.16)






 



Recunoastem in ecuatia de mai sus o suma de convolutie bidimensionala aproape obisnuita.


Observatii:

Suma poate fi evaluata pentru coordonate (x, y) continuale, numarul lor fiind nelimitat.

Nucleul operatorului, h, este o functie de coordonatele continue x si y.

In practica, fereastra operatorului de interpolare, h, are dimensiuni ce nu depasesc trei-sapte pixeli.


Interpolarea de ordinul zero

Cea mai simpla solutie la problema expusa este interpolarea de ordinul zero, numita sugestiv si metoda de interpolare a vecinului celui mai apropiat, conform careia, pixelului cautat i se atribuie intensitatea celui mai apropiat pixel din grila de esantionare. Formal, metoda poate fi descrisa cu ajutorul sumei de convolutie (5.16), cu hx,y definit ca:

hx,y = rect(x,y) = rect(x) rect(y).        

(5.17)






 




Pentru calcule este convenabila exprimarea interpolarii de ordin zero cu ajutorul operatiei de rotunjire. Notand cu x partea intreaga a lui x, interpolarea de ordinul zero se reduce la:

fx,y = f x+0,5 y+0,5

(5.18)






 






In Fig. 5.2, este ilustrata interpolarea de ordinul zero a unui semnal unidimensional.




Fig. 5. 2. Interpolare de ordinul zero a unui semnal 1D.


nterpolarea de ordinul zero produce rezultate modeste in special la marirea imaginilor (zoom), prin faptul ca imaginea interpolata contine arii de intensitate constanta de dimensiunea pixelului in imaginea initiala. Un aspect pozitiv este acela ca tranzitiile abrupte se pastreaza.


Interpolarea de ordinul unu sau liniara

Nucleul de interpolare liniara se poate obtine prin convolutia nucleului de interpolare de ordinul zero cu el insusi. Fig. 5.3 prezinta un exemplu de interpolare liniara pentru semnalul unidimensional din Fig. 5.2. La semnale bidimensionale, h1xy = h1x h1y. Notand cu a si b partea fractionara a coordonatelor x si y,


a = x - x


(5.19)

b y y

(5.20)




 




interpolarea liniara bidimensionala, numita si interpolare biliniara, se poate scrie:


fx,y = (1-a)(1-b)f x y

a(1-b)f x +1, y

(1-a bf x y +1

abf x +1, y +1



(5.21)






 






h1 X = h0 X h0 X

 



Fig. 5. 3. Interpolare liniara 1D.



Procedura de interpolare liniara 2D (biliniara) este ilustrata in Fig. 5.12. Interpretarea grafica se bazeaza pe faptul ca interpolarea liniara 2D se poate obtine prin interpolari 1D succesive pe directiile axelor  





Fig. 5.4. Interpretare grafica a interpolarii liniare 2D


de coordonate. De exemplu, putem proceda in ordinea


f 1 = (1-a)f x y af x +1, y

f 2 = (1-a)f x y +1 af x +1 , y +1

f x, y = (1-b) f 1 + b f 2


Un pixel interpolat rezulta prin medierea ponderata a celor patru pixeli vecini situati pe grila de esantionare a imaginii de intrare. Prin procesul de mediere se obtine o imagine mai neteda (vezi si Fig. 5.5). Efectul este benefic in regiunile omogene ale imaginii, dar i se poate reprosa faptul ca prin mediere contururile obiectelor se estompeaza. Pentru comparatie, in Fig. 5.5 este redat un detaliu din rezultatul prelucrarii de tip lupa ( "zoom") cu interpolare de ordin zero si de ordin unu, la imaginea "Lena".





Fig. 5.5. Efect de marire ("zoom") prin interpolare de ordin zero (stanga)  si liniara (dreapta)


Exemplul 5.2.1

Se da imaginea .


Se mareste imaginea pentru a fi redata in formatul 5 5. Se utilizeaza interpolare de ordinul unu. Se cere intensitatea la coordonatele (2,3).

Rezolvare

Transformarea geometrica este

x' = 5x/3,

y' = 5y/3.

Prin inversarea ecuatiilor transformarii, obtinem:

x = 3x'/5,

y = 3y'/5.

Pentru (x', y') = (2, 3), obtinem:

x = 1.2

y = 1.8.

La interpolarea imaginii fx,y = f1.2, 1.8 , folosim esantioanele

f x y = f1,1 = 3, f x +1, y = f2,1 = 9, f x y +1 = f1,2 = 4, f x +1, y +1 = f2,2 = 7.

Avem a = 0.2, b = 0.8. Folosind ecuatia (5.38), obtinem

f1.2, 1.8 = (1-0.2) (1-0.8) 3 + 0.2 (1-0.8) 9 + (1-0.2) 0.8 4 + 0.2 0.8 7 = 4.52.

In final, g3,3 = f1.2, 1.8 = 4.52. In aproximarea cu numere intregi, g3,3 5.


Interpolare bicubica

Nuclee de interpolare de ordin superior se pot obtine prin convolutia repetata a nucleului de ordinul zero (fereastra rectangulara). Pe masura ce ordinul de interpolare creste, forma lui hx,y tinde spre o functie gaussiana. Totodata dimensiunile ferestrei de interpolare cresc si efectul de netezire mai accentuat. Pentru a se obtine imagini interpolate cu contururi mai putin estompate, se pot folosi operatori ce combina netezirea cu derivarea. Un asemenea operator de interpolare, ce foloseste o regiune de 16 16 pixeli este operatorul bicubic [Sonka 1995] cu




(5.22)






 




Alternativ, imaginea interpolata liniar poate fi postprocesata cu un filtru de tip trece-sus. Metode de interpolare neliniare, de tip morfologic, pot fi, de asemenea avute in vedere.



Politica de confidentialitate


.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.