Sunteți pe pagina 1din 51

METODE GENERALE PENTRU

PRELUCRRI NUMERICE DE
IMAGINI

Cuprins
Eantionarea semnalelor
Utilizarea transformatei Fourier in prelucrarea semnalelor
Transformata Fourier discret
Algoritmi de transformare Fourier rapid
Transformata Fourier bidimensionala continua
Transformata Fourier bidimensionala discreta

Semnale i sisteme discrete

Semnalele: functii continand informatii asupra mediului. Matematic: valori


continue (semnale continue) sau valori discrete (semnale discrete), una sau
mai multe variabile semnal unidimensional / multidimensional. Variabilele
unei functii: continue sau discrete.

Ude ftimp
(t ), t =>t functia:
0
tensiunea
la
momentul
valori continue intr-un interval
Exemplu: semnalul audio un canal:
[Umin,Umax] .
Exemplu: imagine dinamica bidimensionala niveluri de gri:

G f (t , x, y )

valoarea nivelului de gri a imaginii stralucirii, la momentul de timp t, in


punctul de coordonate (x,y) din plan, x si y in [Xmin,Xmax] si respectiv
[Ymin,Ymax], dimensiunile imaginii, iar G in [Gmin,Gmax].

Semnalul discret: definit la momente de timp discrete, variabilele si valorile


functiei iau numai valori discrete reprezentare prin secventa de numere.

Exemplu: semnal
audio,
discretizat
:1,2,...
U

f
(
t
),
i

0
,
k apartin
i unei multimi finite de valori {Umin,..., Umax}.
iar Uk, k=1,2,...,m,

Exemplu: imagine bidimensionala statica (t fixat ) => matrice de valori ale


stralucirii:

G [Gi , j ],

Gi , j f ( xi , yi ),

i 0,1,..., n 1

j 0,1,..., m 1
Gi,j apartinand unei multimi finite {Gmin,...,Gmax}.

Eantionarea semnalelor periodice

In vederea prelucrarii numerice un semnal analogic este esantionat la


intervale egale
secventa
valori
u[ kde]timp
Tf =>
( kT
), kde
Z :
unde f(t) functia continua ~ semnalul analogic, frecventa de esantionare 1/T.
Daca F(w) transformata Fourier a semnalului analogic teorema
importanta privind frecventa minima de esantionare, in vederea
reconstituirii semnalului initial din esantioane. Teorema WKS (Whittaker,
Kotelnikov si Shannon):

Teorema. Daca un semnal f(t) are transformata Fourier F(w) de banda


limitata astfel incat F(w)=0 pentru w>wmax, atunci f(t) poate fi reconstituit in
mod unic din esantioanele f(kT), kZ daca 1/T>=wmax/.

Teorema. O functie periodica f(t) care satisface conditiile dezvoltarii in serie


Fourier si contine k componente armonice, poate fi reconstituita fara erori
pe baza a N esantioane prelevate uniform dintr-o perioada daca este
satisfacuta conditia N2k+1.
Preluarea uniforma a celor N esantioane intr-un interval de timp egal cu o
perioada a semnalului T0, necesita sincronizarea dispozitivului de
esantionare cu semnalul prelucrat. Valoarea maxima a perioadei de
esantionare in vederea evitarii
T0 erorilor
T0 / kla reconstituire este data de relatia :

2 1/ k

deci mai mica decit jumatate din perioada T0/k a componentei de cea mai
inalta frecventa din spectrul semnalului, rezultand astfel o frecventa de
esantionare a semnalului periodic mai mare decat cea a semnalului
neperiodic.

O forma mai generala a teoremei esantionarii functiilor periodice se poate


enunta astfel :

Teorema. Un semnal periodic f(t) care satisface conditiile dezvoltarii in serie


Fourier si care nu contine armonici de rang mai mare decat k, poate fi
reconstituit fara erori pe baza a N esantioane preluate uniform pe durata a P
perioade, daca
frecventa
esantionare satisface conditia :
N
2kP de
1
Din aceasta inegalitate rezulta ca pentru o aceeasi valoare a lui k, teorema
generalizata impune preluarea unui numar mai mare de esantioane (P > 1).
Calculand raportul intre perioada semnalului T0 si perioada de esantionare T :

T0 N 2kP 1

2k 1 / P
T
P
P
Acest raport nu este un numar intreg, deci esantioanele corespunzatoare
oricarei perioade nu reprezinta o reluare a esantioanelor din celelalte P-1
perioade.

Eantionarea semnalelor multidimensionale

Un semnal multidimensional: o functie reala de mai multe variabile reale,


f:RnR. Exemplu: imagini bidimensionale. Metode de esantionare a
semnalelor bidimensionale: esantionarea rectangulara si esantionarea
hexagonala.

Esantionarea rectangulara: avantaje algoritmi de prelucrare obtinuti prin


generalizarea teoremei stabilite pentru semnale unidimensionale si circuite
fizice mai simple.

Esantionarea hexagonala: mai eficienta (semnale de banda limitata intr-o


regiune circulara din planul Fourier). Astfel, pentru o reconstruire exacta a
semnalului initial este necesara o densitate de esantionare cu aproximativ
13.4%
<
esantionarea
rectangulara.

Daca f(x,y) reprezinta un semnal continuu bidimensional procesul de


esantionare rectangulara poate fi descris prin relatia:

g[m, n] f (mX , nY ),

m, n

unde X si Y : perioada de esantionare pe orizontala, respectiv pe verticala.

Semnalul f(x,y) se considera de banda limitata pe un domeniu D din planul


Fourier (care contine originea) daca transformata sa Fourier F(u,v) satisface
conditia:

F (u , v) 0,

pentru (u , v) D

Teorema de esantionare rectangulara a semnalelor:

Teorema. Un semnal f(x,y) poate fi reconstituit fara erori pe baza secventei


de esantioane, daca este de banda limitata pe un domeniu D apartinand
planului Fourier si perioada de esantionare dupa cele doua axe satisface
conditia:

X / u0

si

Y / v0

unde u0 si v0 caracterizeaza domeniul rectangular R din planul Fourier

Procesul de esantionare hexagonala este descris de relatia:

2m n
g[m, n] f (
, nY )
2X

m, n ... 2,1,0,1,2,...

Reconstituirea semnalului original din secventa de esantioane conditionata de


urmatoarea teorema :

Teorema. Daca f(x,y) este de banda limitata pe un domeniu hexagonal din


planul Fourier si daca perioada de esantionare dupa cele doua axe satisface
conditia :

X 4 /(2u0 u ), Y / v0

atunci f(x,y) poate fi reconstituit fara erori pe baza secventei

UTILIZAREA TRANSFORMATEI FOURIER IN


PRELUCRAREA SEMNALELOR
Transformata Fourier a unui semnal
Considerand un semnal neperiodic unidimensional, reprezentat printr-o functie
reala f(t), se defineste transformata Fourier prin relatia :

i 2wt

F ( w)

f (t )e

dt

unde i=

In cazul in care functia F(w) este cunoscuta, utilizand transformata Fourier


inversa se poate determina functia originala:

f (t )

i 2wt
F
(
w
)
e
dw

F ( w)

f (t )e iwt dt

1
f (t )
2

F ( w)

f (t )

iwt
F
(
w
)
e
dw

1
2

1
2

f (t )e iwt dt

iwt
F
(
w
)
e
dw

Daca f(t) este continua si integrabila si F(w) este integrabila. Transformata


Fourier a unei functii reale este de obicei o functie imaginara:

F ( w) R ( w) iI ( w)
unde R(w) este partea reala si I(w) este partea imaginara. Daca f(t) este
para (f(t)=f(-t)) atunci I(w)=0, pentru ca sin(-2wt) este o functie impara
(antisimetrica). Daca f(t) este antisimetrica (f(t)=-f(-t)) R(w)=0 pentru ca
cos(-2wt) este para (simetrica).

forma

F ( w) F ( w) e i( w)
unde:

F ( w) R 2 ( w) I 2 ( w)

este numit si spectrul (amplitudinea) Fourier al lui f(t), iar:

I ( w)
( w) arctg
R( w)

este

faza.

E ( w) R 2 ( w) I 2 ( w)
reprezinta energia spectrului.

Patratul

spectrului:

In cazul functiilor periodice de perioada T, exista posibilitatea dezvoltarii


acestora
in
serie
Fourier,
conform
relatiei:

C0
f (t )
(Ck cos(kwt ) S k sin( kwt ))
2 k 1
in

care

w=2/T,

iar

coeficientii

T /2

2
C0
f (t ) dt

T T / 2
2 T /2
Ck
f (t ) cos(kwt )dt

T T / 2
Sk

T /2

f (t ) sin(kwt )dt

T / 2

dezvoltarii

se

calculeaza

astfel:

O functie periodica poate fi dezvoltata in serie Fourier daca aceasta respecta


conditiile de convergenta. Dezvoltarea in serie Fourier poate fi exprimata si sub
forma:

A0
f (t )
Ak cos(kwt )
2 k 1
unde:

Ak

Ck2 S k2

arctg

Sk
Ck

Relatiile precedente indica faptul ca un semnal periodic poate fi exprimat sub


forma unei sume infinite de semnale sinusoidale de frecvente armonice ale
fundamentalei w=2/T. Transformata Fourier realizeaza o conexiune intre
domeniul timp si domeniul frecventa, avand posibilitatea evaluarii marimii
componentelor spectrale.

Transformata Fourier discret

Se considera o functie continua f(t) discretizata printr-o secventa


{f(t0),f(t0+T),f(t0+2T),...,f(t0+(N-1)T)}, formata din N valori, preluate la intervale de
timp egale T. Se noteaza secventa corespunzatoare de valori prin relatia:

u[k ] f (t 0 kT )

k 0,1,..., N 1

Se poate defini perechea de transformari Fourier discrete aplicate unui semnal


esantionat in N puncte:

1 N 1
U [ j]
u[ k ]e i 2jk / N

N k 0
si respectiv

u[k ]

N 1

j 0

U [ j ]e i 2jk / N

j 0,1,..., N 1

k 0,1,..., N 1

Valorile U[j] din


transformatei

ecuatie pentru
Fourier

U [ j ] F ( jS )

j=0,1,...,N-1 corespund
continue,

esantioanelor
astfel:

j 0,1,..., N 1

in care s-a notat prin S intervalul de esantionare in domeniul frecventa, iar


esantionarea incepe in origine. Se poate arata ca intre intervalele de
esantionare in domeniul timp si domeniul freventa este adevarata urmatoarea
relatie:

1
S
NT

W=1/Ne-i2/N

U [ j]

N 1

u[ k ]W jk

k 0

pentru j 0,1,..., N 1

care se mai poate scrie si sub forma matriciala:

U [0]
U [1]

U [2]

...

U [ N 1]

W0 W0
0
1
W
W

W0 W2

0
N 1
W
W

W0
W2
W4
W 2( N 1)

u[0]

u
[
1
]

u[2]

...

W ( N 1)( N 1) u[ N 1]
W0
W N 1
W 2( N 1)

O proprietate importanta a transformatei Fourier discrete: teorema lui Parceval


(relatia energiilor):

Teorema. Puterea medie a unei functii esantionate in timp este egala cu suma
puterilor asociate fiecarei componente Fourier individuale si nu este afectata
prin
relatia
de
faza
dintre
aceste
componente:

N 1

1
u[ k ]

N k 0

N 1

U [ j]

j 0

Alte proprietati importante se refera la convolutie si corelatie.

Convolutia a doua functii reprezinta un proces de combinare a acestora, de


introducere a unei functii in cadrul celeilalte. Astfel, fiind date doua functii f(t) si
g(t)
se
defineste
convolutia
acestora
prin
relatia:

f (t ) g (t )

f ( s ) g (t s ) ds

unde s este o variabila de integrare. Notand F(w) si G(w) transformatele


Fourier ale celor doua functii se poate arata ca transformata Fourier a
convolutiei f(t)*g(t) este produsul F(w)G(w):

fourier ( f (t ) g (t )) F ( w)G ( w)

Analog, transformata Fourirer a produsului de functii f(t)g(t) este convolutia


transformatelor lor Fourier:

fourier ( f (t ) g (t )) F ( w) G ( w)

In cazul discret, considerand doi vectori reprezentand esantioanele a doua


functii
f(t)
si
g(t):

u [u[0], u[1],..., u[ N 1]]t

v [v[0], v[1],..., v[ N 1]]t


acestora

u v w [ w[0], w[1],..., w[ 2 N 1]]t


cu

w[i ]

N 1

u[ j ]v[i

j]

j 0

sau

kN.

fourier (u v ) fourier (u) fourier ( v )


rezultat care permite obtinerea convolutiei a doi vectori aplicand transformata

c=a*b=b*a

(comutativitatea)
c=a*(b*d)=(a*b)*d=a*b*d
(asociativitatea)
c=a*(b+d)=(a*b)+(a*d)
(distributivitatea)
unde a, b, c si d sunt semnale unidimensionale sau imagini
bidimensionale continue sau discrete.

Corelatia

Asemanator, se defineste corelatia a doua functii continue f(t) si g(t) prin relatia:

f (t ) g (t )

f ( s ) g (t s ) ds

indicand gradul de apropiere ( asemanare ) dintre ele.


In cazul discret:

uv w
cu

w[i ]

N 1

u[ j ]v[i

j]

j 0

considerand u[k]=v[k]=0 pentru k<0 sau kN.

demonstra

fourier (u v ) fourier (u) fourier ( v )


unde

fourier (v )

reprezinta complex conjugatul lui fourier(v). De asemenea:

fourier (u v ) fourier (u) fourier ( v )


aceste relatii fiind valabile si pentru cazul continuu.

Algoritmi de transformare Fourier rapid

Calcularea valorilor date de DFT numar de inmultiri si adunari


complexe proportional cu N2. Intr-adevar, pentru fiecare din cele N
valori ale lui U[j] sunt necesare N inmultiri complexe dintre valorile
esantioanelor u[k] si valorile functiei exponentiale e-i2jk/N si N-1
adunari ale rezultatelor. S-au considerat valorile exponentialei
calculate o singura data si pastrate intr-o tabela.

Au fost dezvoltati algoritmi care calculeaza transformata Fourier a


unui set de esantioane intr-un interval de timp mult mai scurt,
necesitand un numar de operatii de inmultire si adunare proportional
cu Nlog2N => algoritmi de transformare Fourier rapida (FFT).

Multe din procedeele FFT utilizeaza in calcule proprietatile expresiei W=e-i2/N


si
anume:

W
W

k ( N n)

kn

k (n N )

kn

W kn W ( k N ) n
proprietati care rezulta din simetria, respectiv periodicitatea functiilor sinus si
cosinus. Principiul fundamental pe care se bazeaza algoritmii FFT:
descompunerea calculului transformarii Fourier discrete in mai multe
transformari succesive de lungimi mai mici.

Schema algoritmului FFT pentru N=8:

Se poate demonstra ca executia acestui algoritm se poate face intr-un timp


proportional cu NlogN. Pentru realizarea calculului efectiv al transformatei
Fourier rapide este necesar sa se lucreze numai cu coeficientii polinoamelor
care intervin in prelucrare, ceea ce simplifica foarte mult descrierea
algoritmului:

Transformata Fourier bidimensionala continua

Transformata Fourier poate fi extinsa cu usurinta la o functie f(x,y) de doua


variabile, ca de exemplu in cazul imaginilor statice. Daca f(x,y) este continua si
integrabila si F(u,v) este integrabila sunt adevarate relatiile de transformare
Fourier directa si inversa:

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

f ( x, y )e i 2 (ux vy ) dxdy

i 2 (ux vy )
F
(
u
,
v
)
e
dudv

La fel ca in cazul unidimensional se pot defini relatiile pentru spectrul


(magnitudinea)
Fourier:

F (u , v) R (u , v) I (u , v)
2

faza:

I (u, v)
(u, v) arctg
R(u, v)

spectrul energiei:

E (u, v) R (u, v) I (u, v)


2

unde R(u,v) si I(u,v) reprezinta componentele reala si imaginara ale lui F(u,v).

Urmatoarele proprietati sunt valabile atat in domeniul continuu, cat si in


domeniul discret:
a) transformata Fourier poate fi exprimata prin magnitudine si faza:

F (u , v) F (u , v) e i(u , v )

Transformata Fourier a unei imagini poate fi complexa.


Pentru reconstruirea completa a imaginii initiale sunt necesare ambele functii,
magnitudinea si faza.

Imaginea initiala, magnitudinea si faza acesteia.

(u,v)=0
|F(u,v)|=const
Refacerea imaginii initiale

Se considera doua imagini cu dungi, 8 dungi verticale, respectiv 32 dungi


orizontale. Se reprezinta magnitudinile transformatelor Fourier (axa u pe
orizontala si v pe verticala). In ambele cazuri rezulta un punct luminos in
centru, frecventa (0,0) insemnand valoarea medie. Frecventa mare in directia
verticala genereaza doua puncte simetrice pe directie verticala, departate.

b) daca semnalul 2D este real, atunci transformata Fourier are o


anumita
simetrie:

F (u, v) F (u,v)

F (u ,v)
este

complex

conjugatul

lui

F (u, v) F (u,v)

F(-u,-v).

Aceasta

implica:

(u, v) (u,v)

c) daca semnal 2D este real si par, atunci transformata Fourier este


reala
si
para:

F (u, v) F (u,v)

d) transformarile Fourier directa si inversa sunt operatii liniare:


fourier(w1a+w2b)=fourier(w1a)+fourier(w2b)=w1A+w2B
fourier-1(w1A+w2B)=fourier-1(w1A)+fourier-1(w2B)=w1a+w2b
unde a si b sunt semnale 2D (imagini), iar w1 si w2 sunt constante
complexe arbitrare.
e) transformata Fourier din spatiul discret este periodica in ambele
variabile u si v.
F(u+2j,v+2k)=F(u,v)
pentru j si k intregi.

c=a*b

C=AB
c=ab

C=1/(42)A*B
Este o proprietate foarte importanta egalitatea intre convolutia din
domeniul spatial si inmultirea din domeniul frecventa, si reciproc!
=> metodologie pentru implementarea convolutiei;

Transformata Fourier bidimensionala discreta

Considerand discretizarea functiei continue f(x,y) intr-o matrice de esantioane de


tipul:f ( x , y )
f ( x0 x, y0 )
... f ( x0 ( N 1)x, y0 )

0 0

f ( x , y y )
0 0

f ( x0 , y0 2y )

f ( x0 x, y0 y )
f ( x0 x, y0 2y )

... f ( x0 ( N 1)x, y0 y )
... f ( x0 ( N 1)x, y0 2y )

...
... ...
...

f ( x0 , y0 ( M 1)y) f ( x0 x, y0 ( M 1)y ) ... f ( x0 ( N 1)x, y0 ( M 1)y )

in care (x0,y0)=(0,0)

f [0,0]
f [0,1]

f [0,2}

...
f [0, M 1]

f [1,0]

... f [ N 1,0]

f [1,1]
f [1,2]
...
f [1, M 1]

...
...
...
...

f [ N 1,1]

f [ N 1,2]

...

f [ N 1, M 1]

pentru u=0,1,2,...(M-1) si v=0,1,2,...(N-1).

1 M 1N 1
i 2 (ux / M vy / N )
F [u , v]
f
[
x
,
y
]
e

MN x 0 y 0
iar

transformarea

f [ x, y ]

Fourier

inversa:

M 1 N 1

i 2 ( ux / M vy / N )
F
[
u
,
v
]
e

u 0 v 0

pentru x=0,1,2,...,(M-1) si y=0,1,2,...,(N-1).


Relatiile

dintre

imcrementii

1
u
Mx

in

domeniile

1
v
Ny

spatial

si

frecventa

sunt:

Considerindu-se pentru o imagine patrata N=M, ecuatiile precedente se


mai
pot
scrie
si
sub
forma:

1 N 1 i 2ux / N N 1
i 2vy / N
F [u , v]
e
f
[
x
,
y
]
e

N x 0
y 0
-1)

1 N 1 i 2ux / N N 1
f [ x, y ]
e
F [u , v]e i 2vy / N

N u 0
v 0
pentru x,y=0,1,2,...,(N-1). De notat faptul ca in expresiile ambelor functii sa inclus un factor 1/N.

Principalul avantaj al proprietatii de separabilitate este acela ca F[u,v] si f[x,y]


se pot obtine in doua etape succesive, aplicand transformari Fourier directe si
inverse unidimensionale. Astfel, pentru calculul lui F[u,v] intr-o prima etapa se
considera x constant ( transformare pe randuri ) si se calculeaza:

1 N 1
i 2vy / N
F [ x, v ] N [
f
[
x
,
y
]
e
]

N y 0

1 N 1
i 2ux / N
F [u , v]
F
[
x
,
v
]
e

N x 0

Calcularea unei transformri bidimensionale Fourier ca o serie de


transformri unidimensionale:

O proprietate importanta a transformarii Fourier discrete este


periodicitatea:
F[u,v]=f[u,N-v]

f[-x,y]=f[M-x,y]

F[-u,v]=f[M-u,v]

f[x,-y]=f[x,N-y]

F[aM+u,bN+v]=F[u,v]

f[aM+x,bN+y]=f[x,y]

La fel ca in cazul continuu se pot defini relatiile pentru spectrul de frecventa


(magnitudinea)
Fourier:

F [u , v ]

R 2 [u , v ] I 2 [u , v]

faza:

I [u , v]
[u , v ] arctg
R[u , v ]
spectrul energiei:

E[u , v] F [u , v] R [u , v] I [u , v]
unde R[u,v] si I[u,v]
F[u,v] = R[u,v] + i I[u,v]
reprezinta componentele reala si imaginara ale lui F[u,v].

Urmatoarele proprietati sunt valabile atat in domeniul continuu, cat si in


domeniul discret:

Definitia convolutiei pentru doua functii bidimensionale f(x,y) si g(x,y) este

data
de
relatia:

f ( x, y ) g ( x, y ) f ( , ) g ( x , y )d d

iar

pentru

f [ x , y ] * g [ x, y ]

cazul

M 1 N 1

f [m, n]g[ x m, y n]

m0 n 0
doua

dimensiuni

fourier ( f [ x, y ] g[ x, y ]) F [u , v]G[u , v]
si

fourier ( f [ x, y ] g[ x, y ]) F [u , v] G[u , v ]

discret:

Analog cazului unidimensional, corelatia a doua functii bidimensionale f(x,y) si


g(x,y)
este
data
de
relatia:

f ( x, y ) g ( x, y )
iar

pentru

f [ x, y ] g [ x, y ]
pentru

x=0,1,2,...,M-1

f ( , ) g ( x , y )d d

cazul

discret:

M 1 N 1

f [m, n]g[ x m, y n]

m0 n 0
si

y=0,1,2,...,N-1.

Se

poate

demonstra

fourier ( f [ x, y ] g[ x, y ]) F [u , v]G[u , v]
si ca:

fourier ( f [ x, y ] g[ x, y ]) F [u , v] G[u , v]

ca:

Algoritm (de dedublare succesiva) pentru calcularea FFT a valorilor


furnizate prin vectorul F, cu lungimea 2LN de valori reale (partea
imaginara se initializeaza cu 0 ). Rezultatul este returnat tot prin
vectorul F, cu valori complexe.