Documente Academic
Documente Profesional
Documente Cultură
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.
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
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)
1
N
i 2ux
N
e
1
N
i 2vy
N
e
T ( x, v )
N 1
y 0
f ( x, y ) g 2 ( y , v )
T (u , v )
N 1
T ( x, v) g1 ( x, u )
x 0
pentru u,v = 0,1,...,N-1.
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 [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]
F [u , v ]
M 1N 1
p[u, x] f [ x, y ]q[ y, v]
x 0 y 0
Transformarea Walsh
1
1 transformarii:
obtine inlocuind nucleul
bi ( x )bn 1i (u )
g ( x, u )
(1)
N i 0
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.
0 + + + +
u
1 + + - 2 + - - +
3 + - + -
x
0 1 2 3 4 5 6 7
0 + + + + + + + +
1 + + + + - - - 2 + + - - + + - 3 + + - - - - + +
4 + - + - + - + 5 + - + - - + - +
6 + - - + + - - +
7 + - - + - + + -
h ( x, u )
n 1
(1)
bi ( x )bn 1i (u )
i 0
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.
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
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
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
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
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.
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
f ( x)
N 1
u 0
pentru x=0,1,2,...,N-1.
n 1
bi ( x )bi (u )
H (u )(1) i 0
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
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
bi ( x )bi (u )
1
(1) i 0
N
n 1
n 1
bi ( y )bi (v )
1
(1) i 0
N
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.
Transformarea Haar
Transformarea Haar are la baza matricile Haar. Obtinerea matricilor Haar:
Matricea Haar de ordinal 2 este:
1 1
H2
H2N
HN
IN
1 1
unde IN este matricea unitate NxN, iar operatorul reprezinta produsul Kronecker
definit astfel:
1 1 1 1
1 1 1 1
H4
1 1 0 0
0
0
1
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
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
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
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
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
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.
f n a n | d n | d n1 | ... | d1
Imagine intuitiva a procesului iterativ:
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.
f (r )
u 0
2C (u )
(2r 1)u
F (u ) cos
2M
M
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
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 :
(2r 1)
cos
16
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
F ( 0)
1
M
1
M
cos(0) f (4) cos(0) f (5) cos(0) f (6) cos(0) f (7)
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
pentru k 0
altfel
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
(2r 1)u
(2 s 1)v
cos
cos
16
16
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
F c N , N f cTN , N
f cTN , N F c N , N
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
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
2
( x 1)(u 1)
A(u, x)
sin
N 1
N 1
pentru u,x = 0, 1, 2, ... , N-1.
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
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
Tranformarea Hartley
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