Sunteți pe pagina 1din 70

TRANSFORMARI DE

IMAGINI
(2/2)

Cuprins
Formulare generala
Transformarea Walsh
Transformarea Hadamard
Transformarea Haar
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 N
poate
1fi exprimata printr-o relatie generala sub forma:

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:

f ( x)

N 1

T (u )h( x, u )

u 0

unde h(x,u) este nucleul transformarii inverse si x ia valori in domeniul 0,1,...,N1. Natura transformarii este data de proprietatile nucleului.

In cazul imaginilor, in general a ariilor bidimensionale, transformarile directe si


inverse sunt date de ecuatiile:

T (u , v )

N 1 N 1

f ( x, y ) g ( x, y , u , v )

x 0 y 0
si

f ( x, y )

N 1 N 1

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)

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

1
N

i 2ux
N
e

1
N

i 2vy
N
e

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:

T ( x, v )

N 1

y 0

f ( x, y ) g 2 ( y , v )

pentru x=0,1,...,N-1. Apoi transformarea unidimensionala este considerata pe


fiecare coloana in parte, obtinand:

T (u , v )

N 1

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.

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

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 [0,1]

f [0,2}

...

f [0, M 1]

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

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

f [1, M 1] ...

f [ N 1, M 1]

Transformarea generala se poate exprima prin relatia:


F=pfq
unde

F [u , v ]

M 1N 1

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
n

1
1 transformarii:
obtine inlocuind nucleul
bi ( x )bn 1i (u )

g ( x, u )

(1)

N i 0

in ecuatia transformarii generale, obtinandu-se relatia:

n 1
1 N 1
bi ( x )bn1i (u )
W (u ) f ( x) (1)
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=4.
x
0 1 2 3

0 + + + +
u
1 + + - 2 + - - +
3 + - + -

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

h ( x, u )

n 1

(1)

bi ( x )bn 1i (u )

i 0

deci transformarea Walsh inversa este data de relatia:

f ( x)

N 1

n 1

u 0

i 0

bi ( x )bn 1i (u )
W
(
u
)
(

1
)

=> 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
bi ( x )bn1i (u ) bi ( y )bn 1i (v )
g ( x, y, u, v) (1)
N i 0
1 n 1
h( x, y, u, v) (1) bi ( x )bn1i (u ) bi ( y )bn1i (v )
N i 0

Rezulta de asemenea ca transformarile Walsh directe si inversa sunt identice


ca forma:

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

1
)

N x 0 y 0
i 0
si

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

1
)

N u 0 v 0
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)h1(y,v)

g ( x, y , u , v )

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

N i 0

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

N 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).

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

n 1
1 M 1
bi Walsh
( 2 x )bunidimensionala,
n 1i (u )
unde M=N/2,
W(u)
denota
transformarea
W par u=0,1,...,M-1,
(u )
f
(
2
x
)
(

1
)

M x 0
iar
i 0
n 1
1 M 1
bi ( 2 x )bn1i (u )
Wimpar (u )
f
(
2
x

1
)
(

1
)

M x 0
i 0
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
1
numarul de treceri prin zero. FunctiilenWalsh
sunt reale si iau numai valorile 1
bi ( x )bi (u )
sau 1. Nucleul transformarii Hadamard:

1
g ( x, u )
(1) i 0

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
H (u )
f ( x )( 1) i 0

N x 0
unde N=2n, iar u=0,1,2,...,N-1.

bi ( x )bi (u )

Nucleul formeaza o matrice ale carei randuri si coloane sunt ortogonale =>
nucleu al transformarii inverse egal cu cel al transformarii directe (cu exceptia
n 1
unui factor 1/N):

bi ( x )bi (u )

h( x, u ) ( 1) i 0

rezultand relatia pentru transformarea inversa:

f ( x)

N 1

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

n 1

bi ( x )bi (u )

H (u )(1) i 0

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.

In cazul bidimensional nucleele transformarilor:

n 1

bi ( x )bi (u ) bi ( y )bi (v )

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

bi ( x )bi (u ) bi ( y )bi (v )

1
h ( x, y , u , v )
(1) i 0
N

Observatie: in cazul bidimensional nucleele transformarilor directa si inversa


sunt identice.

Ecuatiile transformarilor:

H (u , v)

N 1 N 1

n 1

bi ( x )bi (u ) bi ( y )bi (v )

1
f ( x, y )(1) i 0

N x 0 y 0
n 1

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

N u 0 v 0

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


bi ( x )bi (u )

1
(1) i 0

N

n 1

n 1

bi ( y )bi (v )

1
(1) i 0
N

Cu exceptia factorului 1/N, g1 si h1 sunt identice cu expresia 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
H 2, 2
1

ordin

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

N,

H N,N

H N,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).

din

1
HN,N
N

matricea

Hadamard

1
1
HN,N
HN,N
si

inversa

sunt

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.

Pentru o imagine de test este furnizata reprezentarea grafica a transformarii


Hadamard:

Transformarea Haar
Transformarea Haar are la baza matricile Haar. Obtinerea matricilor Haar:
Matricea Haar de ordinal 2 este:

1 1
H2

In general o matrice Haar de ordinal 2N poate fi obtinuta din matricea Haar de


ordinul N cu relatia:

H2N

HN

IN

1 1

unde IN este matricea unitate NxN, iar operatorul reprezinta produsul Kronecker
definit astfel:

a11B ... a1n B


A B ... ... ...
am1B ... amn B
unde A este o matrice mxn, iar B o matrice oarecare pxq.
Astfel, se poate obtine H4 pornind de la H2 pe baza relatiei precedente:

1 1 1 1
1 1 1 1

H4
1 1 0 0

0
0
1

In continuare, din H4 se poate obtine H8:

1
1

H8
1

0
0

1 1 1 1 1 1
1 1 1 1 1 1
1 1 0 0 0 0

0 0 0 1 1 1 1
1 0 0 0 0 0 0

0 1 1 0 0 0 0
0 0 0 1 1 0 0

0 0 0 0 0 1 1
1
1
1

Interpretarea valorilor din matricea Haar de ordinal 8 (poate identifica


componenta continua si trei armonice:
-linia 1: valoarea medie a semnalului (vector de 8 esantioane);
-linia 2: identifica componenta de frecventa joasa (f);
-linia 3: identifica componenta de frecventa medie (2f) in prima
jumatate a semnalului;
-linia 4: identifica componenta de frecventa medie (2f) in a doua
jumatate a semnalului;
-liniile 5-8: identifica componenta de frecventa mare (4f), fiecare linie in
cate un sfert din semnal.

Matricile de transformare Haar se obtin din matricile Haar. Astfel, matricile de


transformare
Haar
44
si
88
sunt:

1 1
H4
2 2

0
1
1

H8
2

0
0

1
1
2
0

1
1
1 1
0
0

2 2

1
2

1
0

1
0

1
0

1
1
0

0
2

0
0

0
0

2
0

2
0

2
0

2
0

0
0

2
0

2
0

0
2

0
2

0
0

0
0

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


Numarul undei u

Matricea de transformare Haar este reala si ortogonala, HHT = I (I este


matricea unitate). Astfel, H-1 = HT.
Presupunand un semnal x (vector de n componente), transformarea
Haar directa este:
y=Hx
iar transformarea Haar inversa :
x = HT y
Exercitiu: sa se verifice pentru cazul N = 4 relatia HHT = I.

Exemplu: N=4, semnalul x = [1 2 3 4]T. Transformarea Haar directa:

1 1
y Hx
2 2

1
1
2
0

1
1
1 1
0
0

2 2

5
1
2 2


3 1 / 2

4 1 / 2

Semnalul de intrare poate fi reconstruit exact, aplicand transformarea Haar


inversa:

1
2

11 1 2
T
xH y
2 1 1
0

0
1 1

0
2

5 1
2 2

1 / 2 3

1 / 2 4

RN

VN

W
N

unde VN este matricea de scalare N/2N:

1
0

1 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

1
0
1
...
WN
2
0
0

1 0
0

0 0 ... 0

1 1 0 0 ... 0

0 0 ... 1 1 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.

unde:

f1 R N f a1 | d1

unui

vector

a1 VN f

d W f

1 pe coloana).
N
(concatenare
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

a 2 VN / 2a1
d 2 WN / 2a1
sunt vectori N/41.

Procesul continua pana cand se obtine transformarea completa (N=2n):

f n a n | d n | d n1 | ... | d1
Imagine intuitiva a procesului iterativ:

Pentru o imagine de test este furnizata reprezentarea grafica a transformarii


Haar:

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 simple 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) a n cos(nx)
n 0

f(x) este o functie periodica pe domeniul spatial, unde =2f, f fiind frecventa
fundamentala a undei. Pe masura ce n variaza, 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 evaluate in puncte discrete, exprimate prin ecuatia :
M 1

f (r )
u 0

2C (u )
(2r 1)u
F (u ) cos

2M
M

pentru 0r<M, unde

2
C (u )
2
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

(2r 1)u
cos

2M

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 r 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

(2r 1)
cos

16

(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 dat de transformarea cosinus discreta (DCT), care in cazul
unidimensional este :

2C (u )
(2r 1)u
F (u )
f (r ) cos

2M
M

r 0
2
pentru 0u<M, unde C (u )
2
M 1

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.13, -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 :

389.97
2
(2r 1)
(2r 1)2
cos(0)
(280.13 cos

93
.
54
cos

2
M
2M
M
M

(2r 1)3
(2r 1)4
(2r 1)5
83.38 cos

54
.
09
cos

20
.
51
cos


2M
2M
2M

f (r )

(2r 1)6
(2r 1)7
19.80 cos
16.34 cos
)
2M
2M

O reprezentare vizuala :

pixeli rezultati

Un coeficient negativ pentru o componenta de frecventa este echivalent cu


adunarea componentei inversate :
coeficient negativ pentru :
~ 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 :

F ( 0)
1
M

1
M

cos(0) f (0) cos(0) f (1) cos(0) f (2) cos(0) f (3)


cos(0) f (4) cos(0) f (5) cos(0) f (6) cos(0) f (7)

f (0) f (1) f (2) f (3)

f (4) f (5) f (6) f (7)

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
2s 1
F [u, v]
f [r , s ] cos
u cos
v

MN r 0 s 0
2M

2N

cu

c[ k ]

1
2

Matricile sunt parcurse pe linii.

pentru k 0
altfel

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
f [r , s ]
MN

2r 1
2s 1
c[u ]c[v]F [u, v] cos
u cos
v

2M

2N

u 0 v 0

M 1 N 1

unde

c[ k ]

1
2

pentru k 0
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

(2r 1)u
(2 s 1)v
cos
cos

16
16

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 si DCT-IV, cea mai utilizata fiind DCT-II. Matricea de transformare pentru
o imagine patrata este definita:

N
c N , N [k , l ]
2 cos (2k 1)l

N
2N

pentru l 0
pentru k si l 0

si conform ecuatiilor de transformare generala pentru o imagine patrata de


NxN pixeli:

F c N , N f cTN , N

f cTN , N F c 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
2N

2N

x 0 y 0
pentru u = 0, 1, , N-1 si v = 0, 1, , N-1, unde

c[ k ]

1
2

pentru k 0
altfel

iar transformarea cosinus inversa este data de relatia:

2 N 1 N 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

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 Karhunen


Loeve Transform for Finite Discrete Images, Proc. National Electronics
Conference, Chicago, October 1974, 323328). 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

Transformarea sinus bidimensionala este data de relatia:

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

N 1 x 0 y 0
N 1
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 ]
F [u, v] sin
sin

N 1 u 0 v 0
N 1
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