Sunteți pe pagina 1din 1

SAAPI Laborator 3

Transformata cosinus discreta a unei imagini


1) Sa se scrie o aplicatie (in doua variante, cu functie proprie in C++ si apeland functia cv_DCT din
OpenCV) care realizeaza transformata cosinus discreta a unei imagini cu niveluri de gri pe baza
formulei:

F [u , v] =

2c[u ]c[v] M 1 N 1
MN

2r + 1 2 s + 1
u cos
v
2M
2N

f [r , s] cos
r =0 s =0

cu

c[k ] = 2
1

pentru k = 0
altfel

pentru u=0,1,2,...,(M-1) si v=0,1,2,...,(N-1). Se vor considera imagini de test simple de 16x16,


maxim 64x64, realizate cu Paint, inclusiv:
-imagine cu dungi verticale;
-imagine cu dungi orizontale;
-imagine cu patratele;
dar se va considera si o imagine color oarecare.
Imaginile RGB aflate in fisiere BMP cu 24 biti/pixel se vor trece la niveluri de gri pe baza formulei
bazate pe senzitivitatea ochiului uman la diferite culori:
Y = 0.3*R + 0.59*G + 0.11*B
Amplitudinile componentelor de frecventa din transformata cosinus discreta se vor scala, fiind
considerate ca valori de pixeli ce se vor inscrie intr-un fisier BMP, afisandu-se imaginea rezultata si
urmarind componentele de frecventa.
2) Avand componentele de frecventa din transformata cosinus discreta, se aplica transformata
cosinus inversa:

f [r , s] =

2
MN

2r + 1 2 s + 1
u cos
v
2M
2N

M 1 N 1

c[u ]c[v]F[u, v] cos


u =0 v = 0

cu

c[k ] = 2
1

pentru k = 0
altfel

afisandu-se imaginea obtinuta si comparand-o cu cea initiala.

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