710 likes | 1.02k Views
TRANSFORMARI DE IMAGINI. Cuprins Formulare generala Transformarea Walsh Transformarea Hadamard Transformarea Haar Wavelets Transformarea cosinus Transformarea sinus Tranformarea Hartley. FORMULARE GENERALA
E N D
Cuprins Formulare generala Transformarea Walsh Transformarea Hadamard Transformarea Haar Wavelets Transformarea cosinus Transformarea sinus Tranformarea Hartley
FORMULARE GENERALA Desi transformarea Fourier este cea mai utilizata in prelucrari de imagini, exista o serie de alte transformari care de asemenea prezinta un interes deosebit. Transformarea Fourier poate fi exprimata printr-o relatie generala sub forma: unde T(u) este transformata lui f(x), g(x,u) este nucleul transformarii directe, iar u=0,1,...,N-1. Pentru transformata inversa exista relatia: unde h(x,u) este nucleul transformarii inverse si x ia valori in domeniul 0,1,...,N-1. Natura transformarii este data de proprietatile nucleului.
In cazul imaginilor, in general a ariilor bidimensionale, transformarile directe si inverse sunt date de ecuatiile: si unde g si h sunt nucleele de transformare directa si inversa.
Definitie. Nucleul de transformare directa este separabil daca: g(x,y,u,v) = g1(x,u)g2(y,v) Definitie. Nucleul de transformare directa este simetric daca g1 este egal cu g2, deci acesta poate fi exprimat sub forma: g(x,y,u,v) = g1(x,u)g1(y,v) Pentru nucleul de transformare inversa se pot enunta definitii asemanatoare.
Transformarea Fourier bidimensionala este un caz particular al transformarii generale, in care nucleul este: g(x,y,u,v) = 1/N e-i2π(ux+vy)/N care este separabil si simetric g(x,y,u,v) = g1(x,u)g1(y,v) = Asemanator, se poate arata ca nucleul transformarii Fourier inverse este separabil si simetric.
Consecinta cea mai importanta: o transformare cu un nucleu separabil poate fi calculata in doi pasi, fiecare necesitand cate o transformare unidimensionala. Astfel, se aplica transformarea unidimensionala functiei f(x,y), de-a lungul fiecarui rand, obtinand: pentru x=0,1,...,N-1. Apoi transformarea unidimensionala este considerata pe fiecare coloana in parte, obtinand: pentru u,v = 0,1,...,N-1. Aceeasi metoda poate fi aplicata si pentru transformarea inversa daca nucleul h(x,y,u,v) este separabil.
Daca nucleul transformarii directe g(x,y,u,v) este separabil si simetric, ecuatia de transformare se poate exprima si sub forma matriciala: T = AFA unde F este matricea de imagine cu N*N pixeli, A este o matrice de transformare simetrica N*N cu elemente aij = g1(i,j), iar T este transformata rezultata N*N pentru valori ale lui u,v in domeniul 0,1,2,...,N-1. Prin inmultirea relatiei precedente in ambii membrii la stanga si la dreapta cu matricea de transformare inversa B se obtine: BTB = BAFAB F = BTB unde s-a tinut cont ca B = A-1 => o imagine digitala F poate fi refacuta complet din transformata sa T. In cazul in care B nu este identic cu A-1, ecuatia furnizeaza o aproximatie a imaginii initiale: F' = BAFAB
O proprietate importanta a matricilor de transformare: pot fi descompuse in produse de matrici cu mai multe zerouri decat matricea originala => reduce redundanta si in consecinta numarul de operatii necesare implementarii transformarii bidimensionale. Mai general, se considera o imagine de dimensiune MxN, reprezentata prin matricea:
Transformarea generala se poate exprima prin relatia: F = p f q unde pentru u = 0,1,…,M-1 si v = 0,1,…,N-1. Daca p si q sunt matrici nesingulare (cu determinanti nenuli), atunci exista matricile lor inverse si f = p-1 F q-1 Daca p si q sunt simetrice ( p = pT ), reale si ortogonale ( pTp = I ), atunci F = p f q si f = p F q iar transformarea este o transformare ortogonala.
Transformarea Walsh Transformarile Walsh, Hadamard si Haar utilizeaza ca functii de baza un set de functii nesinusoidale. Pentru N=2n, transformarea Walsh discreta a unei functii f(x), notata cu W(u), se obtine inlocuind nucleul transformarii: in ecuatia transformarii generale, obtinindu-se relatia: unde bk(z) este bitul k in reprezentarea binara a lui z.
Valorile pentru g(x,u), exceptand factorul constant 1/N, sunt reprezentate in tabel, pentru N=8. x │ 0 1 2 3 4 5 6 7 ──┼───────────────── 0 │ + + + + + + + + 1 │ + + + + - - - - 2 │ + + - - + + - - u 3 │ + + - - - - + + 4 │ + - + - + - + - 5 │ + - + - - + - + 6 │ + - - + + - - + 7 │ + - - + - + + - matrice simetrica, ale carei coloane si randuri sunt ortogonale.
Aceste proprietati, conduc la un nucleu al transformarii inverse identic cu cel al transformarii directe, exceptand un factor constant 1/N, deci: deci transformarea Walsh inversa este data de relatia: => orice algoritm pentru calculul transformarii directe poate fi utilizat si pentru calculul transformarii inverse, inmultind rezultatul cu N.
In cazul imaginilor bidimensionale, mai general al functiilor de doua variabile, nucleele de transformare directa si inversa sunt date de relatiile:
Rezulta de asemenea ca transformarile Walsh directe si inversa sunt identice ca forma: si
La fel ca in cazul unidimensional, orice algoritm de calcul al transformatei directe bidimensionale, se poate utiliza si pentru calcularea transformarii inverse. Nucleele transformarilor Walsh sunt separabile si simetrice caci: g(x,y,u,v) = g1(x,u)g1(y,v) =h1(x,u)h2(y,v) Rezulta ca W(u,v) si inversa sa se pot calcula prin aplicarea succesiva a transformarii Walsh unidimensionale (tehnica de calculare este asemanatoare cu cea prezentata pentru transformarea Fourier).
Se poate aplica si o metoda de calculare rapida a transformatei Walsh (FWT), asemanatoare metodei FFT, cu dublare succesiva, pentru care: W(u) = 1/2 {Wpar(u)+Wimpar(u)} si W(u+M) = 1/2 {Wpar(u)-Wimpar(u)} unde M=N/2, u=0,1,...,M-1, W(u) denota transformarea Walsh unidimensionala, iar
Algoritm de calcul al transformatei Walsh directe, care utilizeaza aceste relatii. Parametrii de intrare: -vectorul F, continand valorile esantionate ale semnalului; -LN = log2N (cu N lungimea vectorului F, putere a lui 2). Rezultatul: -vectorul F, care la revenirea din procedura contine valorile transformatei Walsh a vectorului de intrare. De remarcat: transformata Walsh este reala => necesita o cantitate mai mica de memorie decat transformata Fourier.
Transformarea Hadamard Au fost studiate transformarile Fourier si Walsh. Transformarea Fourier consta in esenta dintr-o proiectie pe un set de forme de unda sinusoidale. Coeficientii Fourier se numesc componentele de frecventa si formele de unda sunt ordonate dupa frecvente. Transformarea Hadamard consta dintr-o proiectie pe un set de forme de unda dreptunghiulare numite functii Walsh. Coeficientii transformarii Hadamard se numesc componentele de secventa, iar functiile Walsh sunt ordonate dupa numarul de treceri prin zero. Functiile Walsh sunt reale si iau numai valorile 1 sau –1. Nucleul transformarii Hadamard: unde suma de la exponent este realizata modulo 2, iar bk(z) este bitul k din reprezentarea binara a lui z.
Transformarea Hadamard unidimensionala: unde N=2n, iar u=0,1,2,...,N-1. Nucleul formeaza o matrice ale carei randuri si coloane sunt ortogonale => nucleu al transformarii inverse egal cu cel al transformarii directe (cu exceptia unui factor 1/N): rezultand relatia pentru transformarea inversa: pentru x=0,1,2,...,N-1.
Observatie: in cazul bidimensional nucleele transformarilor directa si inversa sunt identice. Ecuatiile transformarilor: => pentru transformarile Hadamard se poate utiliza acelasi algoritm.
Nucleele Hadamard sunt separabile si simetrice: g(x,y,u,v) = g1(x,u)g1(y,v) = h1(x,u)h1(y,v) = Cu exceptia factorului 1/N, g1 si h1 sunt identici expresiei nucleului transformarii unidimensionale. Deoarece nucleele de transformare Hadamard bidimensionale sunt separabile => perechea de transformari bidimensionale se poate obtine prin aplicarea succesiva a algoritmului Hadamard unidimensional. Modificarea algoritmului de transformare Walsh rapida => transformata Hadamard rapida (FHT). O alta solutie: calcularea transformatei Walsh si reordonarea rezultatului (elementelor vectorului de iesire).
Se poate stabili o relatie recursiva simpla pentru obtinerea matricilor de transformare generala. O matrice Hadamard de ordinul N, cu NxN elemente, este simetrica avand numai elemente 1 si –1. Matricea Hadamard de cel mai mic ordin (N=2) este: Considerand HN matrice de ordin N, relatia recursiva este: cu N=2n (exista si matrici Hadamard de dimensiuni care nu sunt puteri ale lui 2, dar se utilizeaza mai putin in prelucrarile de imagini).
Matricea de transformare generala din T = AFAse scrie sub forma: Se poate calcula usor matricea Hadamard inversa cu relatia: Transformarile Hadamard directa si inversa sunt date de relatiile: Se poate observa ca pentru calcularea transformarilor Hadamard sunt necesare operatii de inmultire de matrici, care insa se reduc numai la operatii de adunare/scadere. Transformarea Hadamard se mai numeste uneori transformarea Walsh-Hadamard, caci baza transformarii o constituie functiile Walsh.
Harmuth (H. F. Harmuth, Transmission of Information by Orthogonal Functions, Springer-Verlag, New York, 1969) a dat o interpretare in frecventa pentru matricea Hadamard, luand in considerare numarul de schimbari de semn pe fiecare linie a matricii, obtinand astfel un set de functii de baza ale transformarii. Exemplu pentru o matrice 16x16:
Aceste functii se mai numesc si functii Walsh. Astfel, matricea Hadamard realizeaza descompunerea unui semnal printr-un set de forme de unda rectangulare , spre deosebire de transformarea Fourier care realizeaza o descompunere pe baza unor forme de unda sinus-cosinus.
Pentru o imagine de test este este furnizata reprezentarea grafica a transformarii Hadamard:
Transformarea Haar Transformarea Haar se obtine din matricile Haar. Astfel, matricile Haar 4×4 si 8×8 sunt:
Reprezentarea grafica a functiilor de baza Haar pentru N=16: Numarul undei u → x
Transformarea Haar poate fi calculata recursiv utilizand matricea N×N: unde VN este matricea de scalare N/2×N:
iar WN este matricea wavelet N/2×N: Elementele liniilor din VN reprezinta semnalele de scalare de nivel intai, iar elementele liniilor din WN se numesc waveleturi Haar de nivel intai.
Transformarea Haar de nivel intai a unui vector coloana f cu N×1 este: unde: (concatenare pe coloana). Vectorul a1 reprezinta trendul elementelor lui f (media dinamica), iar d1 fluctuatia dinamica a elementelor lui f. Pasul urmator este calcularea transformarii Haar de nivel doi din componenta de trend a transformarii de nivel intai si concatenarea cu vectorul de fluctuatie de nivel intai. unde: sunt vectori N/4×1.
Procesul continua pana cand se obtine transformarea completa (N=2n): In aplicatiile de prelucrare a imaginilor transformarea Haar furnizeaza un domeniu in care un tip de energie diferentiala este concentrata in regiuni localizate. Imagine intuitiva a procesului iterativ:
Pentru o imagine de test este furnizata reprezentarea grafica a transformarii Haar:
Wavelets Wavelet-urile reprezinta o alta abordare de descompunere a unor semnale complexe in sume de functii de baza. Functiile Fourier sunt localizate in frecventa, dar nu si in domeniul spatial (in timp); determina valorile de frecventa, dar nu si aparitiile acestora. Modificari minore de frecventa produc modificari majore in domeniul spatial. Wavelet-urile sunt locale atat in frecventa (prin dilatari “dilations”) cat si in timp (prin translatari). Anumite zgomote sau discontinuitati intr-o imagine necesita mai putine functii de baza wavelet, decat ar necesita functii de baza sinus si cosinus. Astfel de imagini au o reprezentare mai compacta utilizand wavelet-uri, decat utilizand functii sinus si cosinus. Exista multe tipuri de wavelet-uri, utile in diferite scopuri. Asa cum functiile sinus si cosinus sunt utilizate in analiza Fourier, wavelet-urile sunt utilizate ca functii de baza in reprezentarea altor functii. Wavelet-urile sunt derivate dintr-o functie de baza numita functia “mother wavelet” sau wavelet de analiza. Cea mai simpla astfel de functie este functia “Haar Mother Wavelet”
Functia wavelet de baza fiind fixata Φ(x), se formeaza translatari si dilatari ale acesteia unde se considera valori speciale pentru a si b: a=2-j , b=k·2-j .
Coeficientii Haar wavelet. Coeficientii din coltul stanga sus corespund imaginii de rezolutie scazuta, iar celelalte cadre corespund unor caracteristici de rezolutie mare. Wavelet-urile sunt utilizate pentru compresia de imaginilor, suprimarea zgomotelor, vederea cu ajutorul calculatorului, dar si in alte domenii cum sunt radar, predictia cutremurelor, etc.
TRANSFORMARILE COSINUS, SINUS SI HARTLEY Transformarile cosinus, sinus si Hartley sunt transformari unitare care utilizeaza functii de baza sinusoidale, la fel ca transformarea Fourier. Transformarile cosinus si sinus nu reprezinta partile cosinus si sinus din transformarea Fourier (care nu sunt functii ortogonale). Transformarea Hartley utilizeaza functii de baza sinus si cosinus, dar coeficientii acestora sunt numere reale, spre deosebire de transformarea Fourier care are in general coeficienti complecsi.
Transformarea cosinus discreta Transformarea cosinus a fost introdusa de Ahmed (N. Ahmed, T. Natarajan and K. R. Rao, “On Image Processing and a Discrete Cosine Transform,” IEEE Trans. Computers, C-23, 1, January 1974, 90–93) si are largi aplicatii in codificarea si compresia imaginilor (standardul JPEG pentru poze si MPEG pentru video).
Teoria Fourier specifica faptul ca orice semnal periodic poate fi reprezentat ca o suma infinita de unde sinusoidale simle cu frecvente si amplitudini variabile. Se va considera semnalul corespunzator unei linii de pixeli dintr-o imagine, deci un semnal unidimensional, pentru care : f(x) este o functie periodica pe domeniul spatial, unde ω=2πf,f fiind frecventa fundamentala a undei. Pe masura ce n varieaza, sunt considerate componentele de frecventa, an este amplitudinea componentei a n-a de frecventa.
Un exemplu in care o unda este o suma de trei unde sinusoidale, toate celelalte componente de frecventa fiind de amplitudine zero.
Se considera o linie de pixeli dintr-o imagine, 8 pixeli. Fiecare linie de M pixeli se poate reprezenta ca o suma de M functii cosinus ponderate evalate in puncte discrete, exprimate prin ecuatia : pentru 0≤r<M, unde pentru u=0, altfel C(u)=1. Pentru pixelii din exemplu avem valorile [0, 0, 0, 153, 255, 255, 220, 220]. F(u) este un vector de coeficienti.
Fiecare functie este numita o functie de baza, fiind vazuta ca o componenta de frecventa. Coeficientii F(u) indica ponderea componentelor de frecventa din suma care produce valorile pixelilor. Pentru M=8 functiile de baza sunt date in continuare, sub forma unor functii cosinus continue. Pe masura ce valorile functiilor cosinus descresc, pixelii devin mai intunecati, deoarece 1 reprezinta alb si -1 reprezinta negru.
Functia de baza 0 : Functia de baza 1 :
Functia de baza 2 : Functia de baza 3:
Functia de baza 4 : Functia de baza 5 :
Functia de baza 6 : Functia de baza 7 :