Procesarea Imaginilor - curs 4etc.unitbv.ro/~csaba.kertesz/pds/curs/PI-curs04.pdf · Procesarea...

Post on 20-Feb-2019

259 views 0 download

Transcript of Procesarea Imaginilor - curs 4etc.unitbv.ro/~csaba.kertesz/pds/curs/PI-curs04.pdf · Procesarea...

Procesarea Digitală a Semnalelor și a ImaginiiProcesarea Digitală a Semnalelor și a Imaginii

Procesarea ImaginilorProcesarea Imaginilor

– – curs 4 –curs 4 –

Universitatea Transilvania BrașovFacultatea de Inginerie Electrică și Știința CalculatoarelorDepartamentul de Electronică și Calculatoare

2012.06.04 ș.l. dr. ing. Kertész Csaba-Zoltán

Operații integraleOperații integrale

i

j

g i , j=O f , i , j ,

Operații integraleOperații integrale

● transformata unei imagini: la calculul noii valori a unui pixel al imaginii transformate contribuie valorile tuturor pixelilor din imaginea originală

● transformata Fourier bidimensională:

F u , v =∫−∞

∫−∞

f x , y e− j uxvy dx dy

f x , y =1

42 ∫

−∞

∫−∞

F u , v e j uxvy du dv

Transformări unitareTransformări unitare

● transformarea unitară se referă la o clasă de matrici unitare folosite pentru reprezentarea imaginilor într-o bază (de imagini)

● o matrice A de dimensiuni N×N este unitară dacă inversa ei este matricea A*T

● *T este transpusa complex conjugat● IN este matricea identitate

A⋅A−1=A⋅A∗T=A∗T⋅A=I N

I N=1 0 0 00 1 0 00 0 1 0⋮ ⋮ ⋮ ⋱ ⋮0 0 0 1

Cazul 1DCazul 1D

● pentru un semnal u(t) eșantionat, valorile semnalului pot fi aranjate într-un vector de dimensiune N

U=[u0

u1

⋮uN−1

]=[u0 u1uN−1]T

Transformata unitară 1DTransformata unitară 1D

● transformata unitară este definită de o matrice A de N×N dimensiuni având proprietatea de unitaritate

● transformata vectorului U prin transformare definită de matricea A este vectorul V de dimensiune N, definit prin relaţia:

● ceea ce poate fi reprezentat matricial:

vk=∑n=0

N−1

akn⋅un , k=0, N−1

V =A⋅U

Transformata inversăTransformata inversă

● transformata inversă ce permite recuperarea vectorului original, având în vedere proprietatea de unitaritate, este dată de relația:

● ceea ce poate fi reprezentat matricial:

un=∑k=0

N−1

vk⋅akn∗ , n=0, N−1

U=A∗T⋅V

Proprietăți ale transformatei unitareProprietăți ale transformatei unitare

● vectorul U poate fi scris ca o combinație liniară a coloanelor A*, ponderile fiind date de elementele vectorului V

● elementele vectorului V sunt coeficienții descompunerii vectorului U în baza formată din coloanele matricii A*T

● transformata unitară înseamnă scrierea vectorului U într-o altă bază

● transformata fiind unitară este echivalentă condiției de ortogonalitate asupra bazei

Transformata unitară 2DTransformata unitară 2D

● pentru o imagine U = {um,n}, de dimensiune N×N, transformata unitară este definită de N2 de matrici de dimensiune N×N

● transformata directă:

● transformata inversă:

v k , l=∑m=0

N−1

∑n=0

N−1

um ,n⋅ak , l m , n , k , l=0, N−1

um,n=∑k=0

N−1

∑l=0

N−1

uk , l⋅ak , l∗ m,n , m ,n=0, N−1

Transformata unitară 2DTransformata unitară 2D

● matricile ak,l

reprezintă un set de matrici de bază ortonormale

● condiția de ortonormalitate:

● o astfel de transformată este caracterizată de N4 coeficienți a

k,l, ceea ce înseamnă că calculul

transformatei este de complexitate O(N4)

∑m=0

N −1

∑n=0

N−1

ak , l m, n⋅ak ' , l '∗

m ,n=k−k ' , l−l '

k−k ' , l−l ' ={1, k=k ' şi l=l '0, altfel

Separabilitatea transformatei unitareSeparabilitatea transformatei unitare

● complexitatea calculului transformatei poate fi redusă la O(N3) în ipoteza separabilității transformării

● o transformare este separabilă, dacă elementele ak,l(m,n) ce o definesc pot fi scrise ca produs de alte două elemente, grupate după perechi de indici:

● unde matricile A = {a(k,m)} și B={b(l,n)} sunt și ele unitare

ak , l m ,n=ak m⋅bl n=a k ,m⋅bl , n

A⋅A∗T=A∗T⋅A=I N B⋅B∗T=B∗T⋅B=I N

Transformata unitară separabilăTransformata unitară separabilă

● în ipoteza separabilității transformata devine:

● ceea ce poate fi scris matricial ca:

v k ,l =∑m=0

N−1

∑n=0

N−1

ak ,m⋅um,n⋅b l , n ,

um,n=∑k=0

N−1

∑l=0

N−1

a∗k ,m⋅v k , l⋅b∗l , n ,

V =A⋅U⋅BT

U=A∗T⋅V⋅B∗

Implementare practicăImplementare practică

● în practică se folosesc transformate separabile pentru care B=A, astfel transformata devine:

● respectiv, matricial:

v k ,l =∑m=0

N−1

∑n=0

N−1

ak ,m⋅um,n⋅a l , n ,

um,n=∑k=0

N −1

∑l=0

N−1

a∗k ,m⋅v k , l⋅a∗l , n ,

V =A⋅U⋅AT

U=A∗T⋅V⋅A∗

Proprietățile transformatei unitareProprietățile transformatei unitare

● o transformare unitară conservă energia semnalului u (dată de norma la pătrat)

● pentru majoritatea transformatelor unitare folosite în practică energia semnalului tinde să fie distribuită neuniform în spațiul transformării

● entropia unui semnal discret cu valori aleatoare se conservă printr-o transformare unitară

● coeficienții în spațiul transformatei sunt decorelați sau aproape decorelați

Ev=∥v∥2=v ∗T⋅v= A u∗T⋅A u=

=u∗T A∗T A u=u∗T⋅u=∥u∥2=Eu

Proprietățile transformatei unitareProprietățile transformatei unitare

● transformata poate fi utilizată pentru compresie, prin faptul că compactează energia într-un număr dat de coeficienți, care sunt în același timp decorelaţi

● transformata optimă din punctul de vedere a compresiei (compactare maximă, decorelare completă) este transformata Karhunen-Loève

● această transformată nu poate fi utilizată în practică pentru că depinde de conținutul imaginii și nu este separabilă

Transformata Fourier DiscretăTransformata Fourier Discretă

● transformata Fourier discretă astfel definită nu este unitară

v k =∑n=0

N−1

un⋅e− j2

knN , k=0, N−1

un=1N∑k=0

N−1

v k ⋅ej2

knN , n=0, N−1

TFD unitarăTFD unitară

● pentru ca transformata Fourier discretă se devină unitară trebuie folosit următoare relație:

● astfel matricea transformării devine:

v k =1

N∑n=0

N −1

un⋅e− j2

knN , k=0, N−1

un=1

N∑k=0

N−1

v k ⋅ej2

knN , n=0, N−1

f k , n=1

Ne

− j2knN , k ,n=0, N−1

Transformata Fourier BidimensionalăTransformata Fourier Bidimensională

● transformata Fourier bidimensională în ipoteza unei transformate unitare separabile poate fi scris ca:

● sau matricial:

v k , l =1N∑m=0

N−1

∑n=0

N−1

u m,n⋅e− j2

kmlnN

um ,n=1N∑k=0

N−1

∑l=0

N−1

v k , l⋅ej2

kmlnN

V =F⋅U⋅FU=F∗⋅V⋅F∗

Transformata Fourier BidimensionalăTransformata Fourier Bidimensională

Transformata Cosinus DiscretăTransformata Cosinus Discretă

● transformata cosinus discretă este o transformată unitară separabilă, definită de matricea C = {c(k,n)}

c(k ,n)={1

√N, k=0,n=0, N−1

√ 2N

cos(2n+1)π k

2N, k=1, N−1 ,n=0, N−1

Transformata Cosinus DiscretăTransformata Cosinus Discretă

● TCD este definită prin relația:

● unde:

v k =k ∑n=0

N−1

uncos2n1 k

2N, k=0, N−1

un=∑k=0

N−1

k v k cos2n1 k

2N, n=0, N−1

0=1N

, k= 2N

, k=1, N−1

Transformata Cosinus DiscretăTransformata Cosinus Discretă

● relația matricială:

● matricea C are proprietatea că C = C*, elementele sale fiind numere reale

● transformata cosinus nu este partea reală a transformării Fourier

● transformata cosinus compactează spectrul spre origine

V =C⋅U⋅CT

U=CT⋅V⋅C

Transformata Cosinus DiscretăTransformata Cosinus Discretă

Compresia JPEGCompresia JPEG

● dezvoltat de Joint Photographic Expert Group● este o metodă de compresie cu pierderi, care

permite înlăturarea anumitor detalii din imagine pentru a realiza o rată de compresie cât mai mare

● folosește transformata cosinus discretă pentru a compacta energia

● JPEG2000 folosește transformata wavelet, care permite reducerea artefactelor la margini

Pașii compresiei JPEGPașii compresiei JPEG

● reprezentarea culorilor din imagine este convertită din reprezentare RGB în reprezentare YCbCr (luminanță + două canale de crominanță)

● rezoluția canalelor de crominanță este redusă (ochiul uman percepe mai bine variații mici de luminanță decât variații mici în culoare)– acești 2 pași sunt opționali

Pașii compresiei JPEGPașii compresiei JPEG

● imaginea este împărțită în blocuri de 8×8 pixeli și fiecărui bloc este aplicat transformata cosinus discretă

● amplitudinile componentelor din spectru (blocul transformat) sunt cuantizate– ochiul uman este mai sensibil la variații de luminanță și

culoare pe arii mari, și mai puțin la variații mari de frecvență înaltă, de aceea amplitudinile frecvențelor mai înalte sunt cuantizate la o rezoluție mai mică

● asupra blocurilor rezultate se aplică o compresie fără pierderi (gen Hufman)

Împărțire în blocuriÎmpărțire în blocuri

● transformata cosinus este realizată pe blocuri de 8×8 pixeli

● canalul de luminanță este împărțită în blocuri de 8×8

● canalele de crominanță pot fi împărțite în blocuri de 8×8 sau 16×16 (caz în care se va decima blocul la 8×8 pixeli)

● valorile din aceste blocuri sunt convertite în gama [-128,127]

Transformata Cosinus DiscretăTransformata Cosinus Discretă

● se aplică transformata cosinus discretă asupra blocului, dat de formula

v k , l =k l∑m=0

7

∑n=0

7

um, n cos[8 m12 k ]cos[8 n

12 l]

α(x)={√18

, dacă x=0

√ 28

, altfel

DCT pe 8×8 pixeliDCT pe 8×8 pixeli

● cei 64 de pixeli ai transformatei cosinus discrete vor reprezenta frecvențele spațiale:

CuantizareaCuantizarea

● cuantizarea permite reducerea preciziei de reprezentare a frecvențelor înalte, astfel reducând cantitatea datelor

● a matrice de cuantizare tipică (din standardul JPEG) este:

[16 11 10 16 24 40 51 6112 12 14 19 26 58 60 5514 13 16 24 40 57 69 5614 17 22 29 51 87 80 6218 22 37 56 68 109 103 7724 35 55 64 81 104 113 9249 64 78 87 103 121 120 10172 92 95 98 112 100 103 99

]

ExempluExemplu

[−30 −24 −24 −32 −36 −38 −33 −32−38 −32 −28 −30 −38 −59 −57 −57−57 −63 −63 −42 −48 −69 −69 −69−63 −75 −77 −69 −69 −77 −75 −75−77 −77 −83 −75 −83 −83 −83 −83−77 −83 −83 −83 −83 −71 −83 −86−83 −75 −78 −83 −77 −75 −77 −77−86 −86 −86 −86 −77 −86 −83 −83

]

[−11 −17 −18 −11 −8 −5 −4 −3

4 5 4 3 2 1 1 11 2 2 1 1 0 0 00 1 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0

] [−181 −182 −185 −177 −181 −197 −198 −199

53 54 57 60 47 31 38 3914 27 31 14 21 18 23 245 11 9 −4 −8 16 10 90 −3 −6 −8 −7 −4 4 61 −1 −3 −4 1 8 9 9

−1 −10 −9 −1 0 4 0 −1−6 1 −2 5 1 −2 1 3

]

Codarea entropicăCodarea entropică

● este o compresie fără pierderi● se rearanjează pixeli într-o ordine în „zig-zag”, după

care se realizează o compresie RLE (run lenght encoding) și o codare Hufman

Caracteristici ai compresiei JPEGCaracteristici ai compresiei JPEG

● rata de compresie mare– depinde de conținutul imaginii: variațiile lente din

imagine pot fi comprimate mai bine decât variațiile bruște

– depinde de matricea de cuantizare aleasă: cu cât cuantizăm în mai puține nivele cu atât crește compresia imaginii

● la valori mari a ratei de compresie apar artefacte în imagine datorate cuantizării excesive, ce se manifestă în pierderea detaliilor de frecvență înaltă

Artefacte de compresieArtefacte de compresie