filtrarea adaptiva imaginilor - erasmus pulseimag.pub.ro/ro/cursuri/archive/07.pdffiltrarea de...

43
1 LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR C. VERTAN FILTRAREA ADAPTIVA IMAGINILOR

Upload: others

Post on 27-Feb-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

1

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

FILTRAREA ADAPTIVAIMAGINILOR

2

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

De ce adaptiv ?

medierearitmetica

detalii, contururiafectate

Medierea nu ar trebui aplicata in zonele decontur sau cu multe detalii.

3

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptare

Adaptare = modificarea parametrilor de definitie a unei prelucrariin functie de conditiile locale (din jurul punctului curent prelucrat),pentru fiecare pozitie din imaginea de prelucrat.

Potential putem obtine ca urmare a adaptarii cate un filtru diferitpentru fiecare pixel din imagine, pornind de la o aceeasi structurade filtrare de baza.

Adaptarea impune existenta unui mod de masurare cantitativa,obiectiva, a efectelor de prelucrare (dorite sau nedorite) indusein imagine in functie de parametrii ce definesc filtrele.

Deducerea parametrilor filtrelor se fac prin minimizarea unormasuri de tip eroare.

4

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Ce se poate schimba la un filtru ?

Vecinatate (forma ferestrei de filtrare).

Coeficientii (ponderile) corespunzatoare functieide combinare a valorilor.

Orice s-ar modifica in filtru de la o pozitie la alta,prelucrarea globala rezultata nu mai este invariantaspatial, si deci va fi neliniara.

5

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptarea formei ferestrei de filtrare(vecinatatii)

6

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptarea formei ferestrei de filtrare

Filtrarea de netezire este evaluata prin diferentele introduse fatade imaginea care se filtreaza; daca diferentele dintre imagineafiltrata si cea dinainte de filtrare sunt prea mari este posibil cafiltrul de netezire sa fi incetosat contururi din imagine.

Presupunerea colaterala este ca zgomotul este mai slab decatcontururile imaginii si variatiile datorate zgomotului sunt maimici decat variatiile dintre valorile regiunilor alaturate.

Implementarea acestei categorii de filtre foloseste un “comutator”a mai multor valori posibile de dupa filtrare, corespunzand unorpraguri de acceptare a variatiilor.

7

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptarea formei ferestrei de filtrare

1. Comutare mediere/ trece-tot

Fie f imaginea zgomotoasa si g imaginea filtrata.

altfel),,(),(),(daca,),(),(

clfTclfclfclfclg

Valoarea noua a unui pixel este media aritmetica a valorilor dinvecinatatea sa numai daca aceasta valoare nu este prea diferita devaloarea initiala.

Echivalent, putem spune ca comutarea se face intre un filtru demediere cu vecinatate V si un filtru de mediere cu vecinatateformata doar din punctul curent prelucrat.

8

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Exemplu

imagine cu zgomotSNR = 17.3 dB

filtru mediereSNR = 21.5 dB

filtru adaptivSNR = 19 dB

T = 13se folosesc 50%din pixeliifiltrati

9

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptarea formei ferestrei de filtrare

2. Filtre liniare orientate

Se foloseste un set de vecinatati orientate dupa diferite directii.

Fie gi rezultatul filtrarii dupa vecinatatea Vi, orientata pe directia i.

Ex.V1 V2 V3 V4

),(),(minargunde),,(),( clgclfkclgclg iik

k este directia dupa care netzirea este ceamai “moale”, introducand diferente minimefata de imaginea de prelucrat

10

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

imagine cu zgomotSNR = 17.3 dB

filtru mediereSNR = 21.5 dB

Exemplu

filtru adaptiv

SNR = 19.9 dB

11

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

In mod ideal fereastra de filtrare de netezire trebuie sa fieparalela cu conturul local, astfel incat sa selecteze valorisituate din interiorul unei singure regiuni.

fereastra de filtrare izotropa,strica conturul

fereastra de filtrare liniaraperpendiculara pe contur,strica conturul

fereastra de filtrare liniaraparalela cu conturul,nu strica conturul

12

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptarea formei ferestrei de filtrare

3. Filtrul Nagao

V1 V2 V3 V4

V5 V6 V7 V8

V9

Se foloseste un set de vecinatati orientate dupa diferite directii.

13

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Fie gi rezultatul filtrarii dupa vecinatatea Vi.

2minargunde),,(),( iik kclgclg

Vk este vecinatatea pentru care netzirea este cea mai “moale”,introducand diferente minime fata de imaginea de prelucrat,pentru ca este vecinatatea cea mai uniforma (in care valorileselectate sunt cele mai similare intre ele).

Adaptarea formei ferestrei de filtrare

3. Filtrul Nagao

Fie 2i varianta valorilor din vecinatatea Vi.

14

Adaptarea formei ferestrei de filtrare

3. Filtrul Nagao

162 162 162 163 165162 162 162 163 165164 157 161 158 160158 155 158 156 158155 157 154 155 161

V2

162 162162 162 162

157 161

3.47622 i

5.95 3.47 4.23 5.14 0.47 10.47 5.61 9.80 8.61

5pt0.47}{min 2 iii

162162.1429mean(V5)

15

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptarea coeficientilor (parametrilor)functiilor de combinare a valorilor

16

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptarea filtrelor liniareModificarea coeficientilor filtrului in functie de valorile imaginii,in fiecare punct (deci in fiecare pixel operatia de prelucrare va firealizata de un filtru potential diferit).

Urmareste reducerea efectului de blur in zonele de contur.

Exemplu clasic : filtrul Lee(LLMMSE - Locally Linear Minimal Mean Squared Error)

Idee : imaginea filtrata se construieste ca o combinatie liniaraconvexa a imaginii originale (dar posibil degradate) si a imaginiiobtinute prin medierea aritmetica in fiecare pixel a valorilordin imaginea originala.

f)1(fg

17

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Filtrul LeeLLMMSE

f)1(fg

,0 zff 0,0 00 zfzfzzgomot alb, aditiv, necorelat cu imaginea, de medie zero

zffg

zffzfzfg

)1()1(

))(1())(1(

00

0000

Eroarea de aproximare a imaginii corecte f0 prin imaginea filtrata g :z)1()ff(gf 000

Eroarea patratica medie va fi : 2002 z)1()ff(

zffzff )()1(2)1()( 00222

0022

2z

22f

22 )1(0

18

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Minimizarea erorii patratice medii inseamna :Filtrul LeeLLMMSE

02

0)1(22 2z

2f

2

0

2z

2f

2z

0

Dar zff 0 2z

2f

2f 0

Atunci, echivalent, putem scrie :2f

2z

f)1(fg 2f

2z

2f

2z

2z

22f

22 )1(0

19

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Filtrul LeeLLMMSE

Cazuri limita :

02z 0

f)1(fg

fg I.

1 fg II.

2f

2z

In zonele fara zgomot sau in zonele de contur filtrul este trece-tot

22fz

2f

2z

2z

2f

2z

0

In zonele cu zgomot mare sau in zonele uniforme filtrul este trece-jos(mediere)

220fz

f)1(fg 2f

2z

2f

2z

20

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Filtrul LeeLLMMSE :

Exemplu

orig. | zg. gauss.

medie | LLMMSE

21

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Filtrul Lee cu fereastra dubla

La filtrul Lee simplu trebuie cunoscuta puterea zgomotuluiaditiv care afecteaza imaginea.

Idee: folosim pentru fiecare pixel din imagine doua ferestre deprelucrare

o fereastra de dimensiune mica, in care estimam zgomotulo fereastra de dimensiune mai mare, in care se realizeazaprelucrarea de tip Lee standard

presupunem ca pe zona selectata de fereastra imaginea estein mod ideal constanta (egala cu media valorilor din vecinatate)iar variatiile ce apar sunt induse numai de zgomotul aditiv.

22

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Filtrul Lee cu fereastra dubla

pixel curent de prelucrat

fereastra de determinare a puteriide zgomot

fereastra de filtrare Lee propriu-zisa

23

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Filtrarea adaptiva a zgomotului multiplicativ

24

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Zgomot multiplicativ (speckle)

),(),(),( 0 clzclfclf 1z

00 fzf

Filtrele uzuale sunt proiectate pentru eliminarea zgomotuluiaditiv. Vom incerca deci sa transformam zgomotul multiplicativintr-un zgomot aditiv.

original ZAGA zg. multiplicativ

25

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Solutia 1:Caz particular de filtrare homeomorfica: logaritmare

),(),(),( 0 clzclfclf

),(ln),(ln),(ln 0 clzclfclf ),(ˆ),(ˆ),(ˆ0 clzclfclf

26

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Solutia 2

Echivalarea cu un zgomot aditiv, pentru aceeasi imagine, inconditiile in care se doreste aplicarea filtrului Lee.

Lee clasic:

f)1(fg

2f

2z

2z

2f

2z

0

zff 0

zff 0

nff 0

2

2

f

n

ffg )1(

27

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

zff 0

nff 0nfzf 00 )1(0 zfn

1z

00 fzf 0n

22 nn

220

220

20

22 )1()1( zn fzfzfn

1220

2220

220

2 zz fzfzff 222 ff f 11 2

22

2

22

0

z

f

z

fff

222

22

1ff

z

zn

28

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

2

2

f

n

222

22

1ff

z

zn

2

2

2

2

11 fz

z f

ffg )1(

29

Filtru bilateral

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

M. ZAMFIR

• Modelul presupus al semnalului:

y=x+zunde x – semnalul original,

z – zgomot gaussian, de medie zeroy – semnalul observat, afectat de zg.

Semnal unidimensional

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

M. ZAMFIR

0 10 20 30 40 50 605

10

15

20

25

30

35

40

45

semnalul originalsemnalul cu zgomot

Filtru bilateral - ideea

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

M. ZAMFIR

• Fiecare valoare (esantion) este inlocuita demedia ponderata a valorilor din vecinatateaaleasa

• Ponderile arata 2 aspecte:– Alegerea formei vecinatatii si importanta acordata

vecinilor (ponderi mai mari pt vecinii maiapropiati),

– Ponderile tin cont de cat de apropiate sunt valorilevecine de valoarea curenta (ponderi mai mari ptvalori similare).

• Toate ponderile trebuie normalizate a. i. sa numodifice media locala.

3.5 Ponderile

2

S 2S

nW [k,n] exp

2

2

R 2R

Y[k] Y[k n]W [k,n] exp

2

Pozitiacorectata

Filtru bilateral- Exprimarea matematica

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

M. ZAMFIR

n

np

n

np

pkw

pkypkwkx

),(

)(),()(ˆ

Rezultatulpt pozitia k

Mediarea pt 2n+1valori din vecinatateaaleasa

Normalizareaponderilor

PondereaValoarea unui

esantion

Filtru bilateral - Ponderile

2rσ

2p)y(ky(k)exp2rσ

p)y(ky(k),2rdexpp)(k,rw

2sσ

2pexp2sσ

pkk,2sdexpp)(k,sw

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

M. ZAMFIR

p)(k,p)w(k,wp)w(k, rs

Filtru bilateral

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

M. ZAMFIR

36

Filtru bilateral

0.4111 0.5738 0.6412 0.5738 0.41110.5738 0.8007 0.8948 0.8007 0.57380.6412 0.8948 1.0000 0.8948 0.64120.5738 0.8007 0.8948 0.8007 0.57380.4111 0.5738 0.6412 0.5738 0.4111

200 5 20 30 5045 70 80 25 3550 45 60 75 10065 46 65 60 9568 75 68 70 78

0.0000 0.0347 0.1690 0.3679 0.89480.7788 0.8948 0.6412 0.2564 0.49940.8948 0.7788 1.0000 0.7788 0.16900.9726 0.8043 0.9726 1.0000 0.25640.9314 0.7788 0.9314 0.8948 0.6977

0.0000 0.0199 0.1084 0.2111 0.36790.4468 0.7165 0.5738 0.2053 0.28650.5738 0.6969 1.0000 0.6969 0.10840.5580 0.6440 0.8703 0.8007 0.14710.3829 0.4468 0.5972 0.5134 0.2868

Sigma_val=30Sigma_s=3

37

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Adaptarea filtrelor intrinsec neliniare

38

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Filtru de ordine ponderatCoeficientul wi atasat unei pozitii din fereastra de filtrare semnificafaptul ca valoarea extrasa din acea pozitie este repetata de wi oriinainte de ordonare.

iij wxrankclg ),(

Principiul stivei asigura ca aceasta prelucrare poate fi relizata pefiecare nivel al stivei binare, cu rezultate echivalente.

Pentru date binare, medianul este un filtru de majoritate. Dar filtrulde ordine de rang j ?

Iesirea filtrului rankj este 0 numai daca sunt cel putin j valori nule.

39

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Conditii de functionare

Fie un filtru median ponderat cu ponderile wi. Functia binara estedescrisa de:

K

iiiK Kxwxxxf

121 2/)1(1),...,,(

Exista apoi o serie de secvente ce se doresc eliminate (configuratiide zgomot) si o serie de secvente ce se doresc pastrate(configuratii utile).

ljKxwfK

i

jii

j ,...,1cu2/)1(0)(1

)()(

x

hljKxwfK

i

jii

j ,...,1cu2/)1(1)(1

)()(

x

Aceste inegalitati actioneaza pe post de constrangeri pentru filtru.

40

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Accentuare : Reprezentarea raportului invers de contrast

),(),(),(

clfclclg

dispersia locala a valorilor din imagine

media locala a valorilor din imagine

(inverse contrast mapping)

Valorile g(l,c) sunt in final rescalate pentru a pastra valoareamedia globala a valorilor din imagine.

41

LABORATORUL DE ANALIZA ŞI PRELUCRAREA IMAGINILOR

C. VERTAN

Accentuare : Extreme locale

altfel,

2),(daca,),(

)1(

)1()()(

x

xxclfxclg

KK

42

• function out = nagao(in,nriter)

• if ~exist('in','var') error('You must specify an input image!'); end•• if ~exist('nriter','var') nriter = 1; end•• [lin col]=size(in);•• out = in;•• mask = [1,2,6,7,8,12,13; 6,7,11,12,13,16,17; 12,13,16,17,18,21,22; 13,17,18,19,22,23,24;

13,14,18,19,20,24,25; 9,10,13,14,15,19,20;...• 3,4,8,9,10,13,14; 2,3,4,7,8,9,13; ]';•• for k = 1:nriter• disp(['Now performing iteration # ' num2str(k) '...']);• for i = 3:lin-2,• for j = 3:col-2,• temp = in(i-2:i+2,j-2:j+2);• [dummy,poz]=min(var(temp(mask)));• out(i,j)=mean(temp(mask(:,poz)));• end• end• disp('Over!');• end

43

• function out = bilateral(in,N,sigma_v,sigma_d)•• % Performs bilateral filtering for grayscale images corrupted by additive noise• % IN is the input image• % N is the size of the processing window (default = 5)• % SIGMA_VALUE is the parameter that controlls the shape of the• % value-based Gaussian distance (default = 30)• % SIGMA_DISTANCE is the parameter that controlls the shape of the• % geometrical-distance-based Gaussian distance (default = 3)• % OUT is the filtered image•• out = in;• if ~exist('N','var'), N = 5; end

• if ~exist('sigma_v','var'), sigma_v = 30; end

• if ~exist('sigma_d','var'), sigma_d = 3; end•• [lin,col]=size(in);• N = floor(N/2);• DistMatr = exp(-(-N:N)'.^2/sigma_d^2)*exp(-(-N:N).^2/sigma_d^2);• hw = waitbar(0,'Applying neighborhood operator....');• for i = 1+N:lin-N,• for j = 1+N:col-N,• x = in(i-N:i+N,j-N:j+N);• w = exp(-(x-x(ceil(length(x(:))/2))).^2/sigma_v^2).*DistMatr;• out(i,j) = sum(w(:).*x(:)/sum(w(:)));• end• waitbar(i/(lin-2*N),hw);• end• close(hw);