Sunteți pe pagina 1din 70

TRANSFORMARI DE IMAGINI

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:
N 1
T (u ) f ( x) g ( x, u )
x 0

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:
N 1
f ( x) T (u )h( x, u )
u 0

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:

N 1 N 1
T (u , v) f ( x , y ) g ( x, y , u , v )
x 0 y 0
si

N 1N 1
f ( x, y ) T (u, v)h( x, y, u, v)
u 0 v 0

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

i 2ux i 2vy
g(x,y,u,v) = g1(x,u)g1(y,v) = 1 N 1 N
e e
N N

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:
N 1
T ( x, v ) f ( x, y ) g 2 ( y , v )
y 0
pentru x=0,1,...,N-1. Apoi transformarea unidimensionala este considerata pe
fiecare coloana in parte, obtinand:

N 1
T (u, v) T ( x, v) g1 ( x, u )
x 0
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:

f [0,0] f [1,0] ... f [ N 1,0]


f [0,1] f [1,1] ... f [ N 1,1]

f [0,2} f [1,2] ... f [ N 1,2]

... ... ... ...
f [0, M 1] f [1, M 1] ... f [ N 1, M 1]
Transformarea generala se poate exprima prin relatia:
F=pfq
unde
M 1N 1
F [u , v] p[u, x] f [ x, y ]q[ y, v]
x 0 y 0

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=pfq si f=pFq
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:

1 n 1
g ( x, u ) (1)bi ( x)bn1i (u )
N i 0
in ecuatia transformarii generale, obtinindu-se relatia:

1 N 1 n 1
W (u) f ( x) (1)bi ( x)bn1i (u )
N x 0 i 0
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:

n 1
h( x, u ) (1) bi ( x )bn1i (u )
i 0
deci transformarea Walsh inversa este data de relatia:
N 1 n 1
f ( x) W (u ) ( 1) bi ( x)bn1i (u )
u 0 i 0

=> 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:

1 n 1
g ( x, y, u, v) (1)bi ( x)bn1i (u ) bi ( y )bn1i (v)
N i 0

1 n 1 bi ( x)bn1i (u ) bi ( y )bn1i (v)


h( x, y, u, v) (1)
N i 0
Rezulta de asemenea ca transformarile Walsh directe si inversa sunt identice
ca forma:

1 N 1N 1 n 1
bi ( x )bn1i (u ) bi ( y )bn1i (v )
W (u, v)
N x 0 y 0
f ( x , y ) ( 1)
i 0

si
1 N 1N 1 n 1
bi ( x)bn1i (u ) bi ( y )bn1i (v)
f ( x, y)
N u 0 v 0
W (u , v ) ( 1)
i 0
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)

1 n 1 1 n 1
g ( x, y , u , v ) b
(1) i ( x ) bn 1i ( u ) b
(1) i ( y ) bn 1i ( v )
N N
i 0 i 0

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

1 M 1 n 1
W par (u )
M x 0
f ( 2 x ) ( 1) bi ( 2 x )bn1i (u )
i 0

1 M 1 n 1
Wimpar (u )
M x 0
f ( 2 x 1) ( 1) bi (2 x)bn1i (u )
i 0
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:
n1
1 bi ( x )bi (u )
g ( x, u ) (1) i 0
N
unde suma de la exponent este realizata modulo 2, iar bk(z) este bitul k din
reprezentarea binara a lui z.
Transformarea Hadamard unidimensionala:
n 1
1 N 1 bi ( x )bi (u )
H (u )
N x 0
f ( x)( 1) i 0

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):
n 1
bi ( x )bi (u )
h( x, u ) ( 1) i 0
rezultand relatia pentru transformarea inversa:
n 1
N 1 bi ( x )bi (u )
f ( x) H (u )( 1) i 0
u 0
pentru x=0,1,2,...,N-1.
In cazul bidimensional nucleele transformarilor:

n1
1 bi ( x)bi (u ) bi ( y )bi (v)
g ( x, y, u, v) (1) i 0
N
n1
1 bi ( x)bi (u ) bi ( y )bi (v)
h( x, y, u, v) (1) i 0
N
Observatie: in cazul bidimensional nucleele transformarilor directa si inversa
sunt identice. Ecuatiile transformarilor:

n1
1 N 1 N 1 bi ( x)bi (u ) bi ( y )bi (v)
H (u, v)
N x 0 y 0
f ( x, y)( 1) i0

n1
1 N 1 N 1 bi ( x)bi (u ) bi ( y )bi (v)
f ( x, y )
N u 0 v 0
H (u, v)( 1) i0

=> 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) =

n 1 n1
1 bi ( x ) bi ( u ) 1 bi ( y ) bi ( v )
(1) i 0 (1) i 0
N N

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:

1 1
H 2, 2
1 1
Considerand HN matrice de ordin N, relatia recursiva este:

H N , N HN,N
H 2 N ,2 N
H N , N HN,N

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 = AFA se scrie sub forma:

1
A HN,N
N
Se poate calcula usor matricea Hadamard inversa cu relatia:

1 1
HN,N HN,N
N
Transformarile Hadamard directa si inversa sunt date de relatiile:

F H M ,M f H N , N
1
f H M ,M F H N , N
MN
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


44 si 88 sunt:
1 1 1 1
1 1 1 1
1
H4
2 2 2 0 0

0 0 2 2

1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1

2 2 2 2 0 0 0 0

0 0 0 0 2 2 2 2
H8
2 2 0 0 0 0 0 0

0 0 2 2 0 0 0 0
0 0 0 0 2 2 0 0

0 0 0 0 0 0 2 2
Reprezentarea grafica a functiilor de baza Haar pentru N=16:

Numarul undei u

x
Transformarea Haar poate fi calculata recursiv utilizand matricea NN:

VN
RN
WN

unde VN este matricea de scalare N/2N:

1 1 0 0 0 0 ... 0 0 0 0
0 0 1 1 0 0 ... 0 0 0 0
1
VN ...
2
0 0 0 0 0 0 ... 1 1 0 0
0 0 0 0 0 0 ... 0 0 1 1
iar WN este matricea wavelet N/2N:

1 1 0 0 0 0 ... 0 0
0 0
0 0 1 1 0 0 ... 0 0
0 0
1
WN ...
2
0 0 0 0 0 0 ... 1 1 0 0
0 0 0 0 0 0 ... 0 0 1 1

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 N1 este:

f1 R N f a1 | d1
T

unde:
a1 VN f
d1 WN f
(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.
f 2 a 2 | d 2 | d1
T

unde:
a 2 VN / 2a1
d 2 WN / 2a1
sunt vectori N/41.
Procesul continua pana cand se obtine transformarea completa (N=2n):

f n an | dn | dn1 | ... | d1
T

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 Haar Mother:
Functia wavelet de baza fiind fixata (x), se formeaza translatari si dilatari ale
acesteia
xb
, (a, b) R R
a
unde se considera valori speciale pentru a si b: a=2-j , b=k2-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,
9093) 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 =2f, 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 0r<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 :
In fiecare caz se evalueaza functia de baza in punctul x pentru 0r7 de la
stanga la dreapta. Fiecare valoare rezultata corespunde unui pixel din linia de
pixeli situate la dreapta functiei de baza (valorile corespund intervalului -1
negru la +1 alb). Astfel componenta de frecventa

(functia de baza 1) corespunde unei secvente de 8 pixeli de la alb la negru.


Ecuatia precedenta specifica faptul ca exista coeficientii F(u), dar calculul
acestora este data de transformarea cosinus discreta (DCT), care in cazul
unidimensional este :

pentru 0u<M, unde

daca u=0, altfel C(u)=1. Aceasta ecuatie indica modul in care se transforma o
imagine din domeniul spatial (in care sunt date valori de culoare sau niveluri de
gri) in domeniul frecventa (care furnizeaza coeficientii cu care sunt multiplicate
componentele de frecventa).
Daca se considera cei 8 pixeli cu valorile de niveluri de gri [0, 0, 0, 153, 255,
255, 220, 220], acest vector reprezinta imaginea in domeniul spatial. Calculand
F(u) pentru 0u<M se obtine vectorul [389.97, -280.12, -93.54, 83.38, 54.09, -
20.51, -19.80, -16.34], reprezentand pixelii in domeniul frecventa.
Interpretare : linia de pixeli este o combinatie liniara de componente de
frecventa, adica functii de baza multiplicate cu coeficientii din F si o constanta,
adunate impreuna :
O reprezentare vizuala :

pixeli rezultati
Un coeficient negativ pentru o componenta de frecventa este echivalent cu
adunarea componentei inversate :

coeficient negativpentru :

~ coeficient pozitiv pentru :

Primul element F(0) este componenta continua (DC). Pentru o functie periodica
reprezentata in domeniul frecventa componenta continua este o valoare medie
scalata a formei de unda. Se poate constata in cazul unidimensional :

Toate celelalte componente F(1) la F(M-1) se numesc componente AC


(analogie cu domeniul electric).
In cazul bidimensional, pentru o imagine oarecare MxN DCT se defineste :
fie f(r,s) valoarea de pixel de pe randul r si coloana s din imagine. F(u,v) este
coeficientul componentei de frecventa (u,v), unde 0r,uM-1 si 0s,vN-1

2c[u ]c[v] M 1 N 1 2r 1 2 s 1
F [u, v]
MN r 0 s 0
f [r , s ] cos
2M
u cos
2N
v

cu
1
pentru k 0
c[ k ] 2

1 altfel
Matricile sunt parcurse pe linii.
Transformarea poate fi vazuta astfel : se ia o imagine f(r,s) matrice de valori de
pixeli si se obtine o matrice de coeficienti F(u,v) reprezentand amplitudinile
componentelor de frecventa.

Presupunem aplicarea DCT unui bloc dintr-o imagine de 8x8 (cazul compresiei
JPEG) :
Amplitudinile coponentelor de frecventa calculate sunt :
Transformarea inversa este data de ecuatia :

2 M 1 N 1
2r 1 2 s 1
f [r , s]
MN

u 0 v 0
c[u ]c[v]F [u, v] cos
2M
u cos
2N
v

unde

1
pentru k 0
c[k ] 2

1 altfel

ceea ce inseamna ca imaginea bitmap este o suma de MxN componente de


frecventa ponderate.
Functiile de baza DCT pentru o imagine 8x8 sunt :
fiecare bloc din pozitia (u,v) a matricii este un grafic al functiei

in puncte discrete r=[0..7] si s=[0..7]. Componenta DC este in coltul stanga


sus.
Exista patru definitii pentru transformarea cosinus discreta, numite DCT-I, DCT-II,
DCT-III, and DCT-IV, cea mai utilizata fiind DCT-II. Matricea de transformare
pentru o imagine patrata este definita:

1
pentru l 0
c N , N [k , l ] N
2 cos (2k 1)l pentru k si l 0
N 2N
si conform ecuatiilor de transformare generala pentru o imagine patrata de
NxN pixeli:

T T
F cN, N f cN, N f c N, N Fc N, N
Varianta normalizata a transformarii cosinus directe (DCT-II) pentru o imagine
patrata este reprezentata prin relatia:
2c[u ]c[v] N 1N 1 2x 1 2 y 1
F [u, v] f [ x , y ] cos u
cos v
N x 0 y 0 2N 2N
pentru u = 0, 1, , N-1 si v = 0, 1, , N-1, unde
1
pentru k 0
c[ k ] 2

1 altfel

iar transformarea cosinus inversa este data de relatia:

2 N 1N 1 2x 1 2 y 1
f [ x, y] c[u]c[v]F[u, v] cos u cos v
N u 0 v 0 2N 2N
pentru x = 0, 1, , N-1 si y = 0, 1, , N-1.
Functiile de baza ale transformarii cosinus sunt de fapt o clasa a polinoamelor
Chebyshev. In figura urmatoare sunt reprezentate functiile de baza ale
transformarii cosinus pentru N=16
Numarul undei u

x
Pentru o imagine de test este furnizata reprezentarea grafica a transformarii
cosinus:

Originea este plasata in coltul stanga sus. Energia imaginii tinde sa se


concentreze spre frecventele spatiale mai mici.
Transformarea cosinus a unei imagini NxN se poate calcula prin reflectarea
imaginii dupa granitele sale pentru a obtine un tablou 2Nx2N, calcularea
transformarii Fourier si preluarea partilor reale ale transformarii Fourier.
Transformarea sinus discreta

Transformarea sinus a fost introdusa de Jain (A. K. Jain, A Fast


KarhunenLoeve Transform for Finite Discrete Images, Proc. National
Electronics Conference, Chicago, October 1974, 323328) ca un substitut
algoritmic rapid pentru transformarea Karhunen-Loeve a unui proces Markov.
Pentru o singura dimensiune, functia de baza este:

2 ( x 1)(u 1)
A(u, x) sin
N 1 N 1

pentru u,x = 0, 1, 2, ... , N-1.


Reprezentarea functiilor de baza ale transformarii:

Numarul undei u

x
Transformarea sinus bidimensionala este data de relatia:

2 N 1 N 1 ( x 1)(u 1) ( y 1)(v 1)
F[u, v]
N 1 x 0 y 0
f [ x, y]sin
N 1
sin
N 1


Transformarea sinus inversa este identica ca forma:

2 N 1 N 1 ( x 1)(u 1) ( y 1)(v 1)
f [ x, y ]
N 1 u 0 v 0
F [u, v] sin
N 1
sin
N 1


Pentru o imagine de test este furnizata reprezentarea grafica a transformarii
sinus:

De asemenea transformarea sinus poate fi calculata din transformarea Fourier


sau direct utilizand ecuatiile de definitie.
Tranformarea Hartley

Transformarea Hartley a fost propusa de Bracewell (R. M. Bracewell,


The Discrete Hartley Transform, J. Optical Society of America, 73, 12,
December 1983, 18321835), fiind o transformare unitara cu valori reale, ca o
varianta a transformarii Fourier intr-o serie de aplicatii de filtrare. Perechea de
transformari Hartley bidimensionale:

1 N 1 N 1 2 (ux vy) 2 (ux vy)


F[u, v] f [ x, y] cos sin
N x 0 y 0 N N

1 N 1 N 1 2 (ux vy) 2 (ux vy)


f [ x, y] F[u, v] cos sin
N u 0 v 0 N N
Se utilizeaza si notatia cos+sin=cas (este functie ortogonala).
Reprezentarea transformarii Hartley pentru o imagine de test:

De asemenea exista algoritmi de transformare Hartley asemanatori algoritmilor


FFT.

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