Sunteți pe pagina 1din 5

Laborator VIII

Filtre de Ordine

I. Motivaie

Zgomotul de tip salt and pepper altereaz o imagine prin nlocuirea unui
procent de pixeli alei aleator cu valori minime (0) i maxime (255) din
domeniul de valori ale pixelilor.

Pentru nlaturarea acestui tip de zgomot se folosete adesea filtrul median


(funcia medfilt2) care selecteaz valoarea de mijloc din fereastra de filtrare
(cea care apare la mijlocul vectorului dup ordonare). Variaii ale acestui
filtru includ filtrele de minim i maxim care nlocuiesc valoarea pixelului
curent cu valoarea minim i respectiv maxim din fereastra de filtrare (utile
pentru zgomote de tip salt sau de tip pepper).

n general, filtrul median este foarte performant la nlturarea zgomotului


care afecteaz mai puin de jumtate dintre pixelii unei ferestre de filtrare.
n anumite cazuri, ns filtrele mediane pot fi strpunse de zgomot, aa cum
este ilustrat n figura urmtoare. Mrirea ferestrei glisante (dimensiunea
filtrului) rezolv problema extremelor persistente, dar are ca dezvantaj
introducerea unui efect de netezire nedorit.

II. Filtrul de Ordine de Netezire

Un remediu pentru a rezolva problema anterioar o constituie folosirea


filtrelor de ordine. Ieirea filtrului LUM (Lower Upper Middle) de Netezire este
urmtoarea:
{
x k , daca x < x k
y= x nk+1 , daca x > x nk+1
x ,rest

unde x reprezint pixelul iniial din centrul ferestrei , k este un

parametru reglabil iar y


este ieirea filtrului.
Se poate observa faptul c n cazul k =1 , obinem un filtru identitate. n

schimb, dac k=
[ ]
n+1
2 vom obine chiar filtrul median. Se pot observa

urmtoarele:
dac sunt puine valori extreme, atunci se poate alege un parametru k
mic.
dac sunt multe valori extreme, atunci se va alege un k mare pentru
izolarea lor.
Astfel, alegerea adaptiv a lui k poate reduce efectele de netezire cauzate de
filtrul median.

a) Implementai filtrul LUM de Netezire avnd ca parametri dimensiunea


ferestrei i k.
b) Comparai performanele acestuia n termen de PSNR, n funcie de
parametrii si.
c) Comparai performanele acestuia n termen de PSNR, n raport cu filtrul
median.
III. Filtrul de Ordine de Reliefare

Un filtru de ordine de tip LUM (Lower Upper Middle) poate fi utilizat i pentru
punerea n eviden a diferenelor din imagini (operaie cumva similar
ajustrii contrastului). Ieirea filtrului LUM (Lower Upper Middle) de Reliefare
este urmtoarea:

{
x k + x nk+1
x k , daca xk < x <
2
y= x k + x nk+1
x nk+1 , daca < x < x nk+1
2
x ,rest


unde x reprezint pixelul iniial din centrul ferestrei , k este un

parametru reglabil iar y este ieirea filtrului.

Se poate observa faptul c n cazul k =1 , filtrul va scoate doar valorile

extreme, obinnd astfel o reliefare maxim. n schimb, dac k=[ ]n+1


2

vom obine un filtru identitate.

a) Implementai filtrul LUM de Reliefare avnd ca parametri dimensiunea


ferestrei i k.
b) Comparai performanele acestuia din punct de vedere vizual, n funcie
de parametrii si.

IV. Filtrul Liniar Adaptiv


Filtrul liniar adaptiv lucreaz pe blocuri ale imaginii, efectund o filtrare care
combin liniar imaginea filtrat (cu filtru de mediere) cu cea original, dup
formula:
2

f^ =f + ( 1 ) f , =1 n2
f

2
unde
f
este blocul obinut prin mediere, f^ blocul filtrat, iar n

constituie variaia zgomotului. Astfel, n blocurile relativ omogene ale


2 2
imaginii vom avea n = f , ceea ce implic =0 , rezultnd deci un
simplu filtru de mediere. Atunci cnd variaia blocului f este mult mai mare
dect zgomotul (frecvenele nalte), vom avea =1 , obinnd deci filtrul
identitate, ceea ce conserv astfel frecvenele nalte din imagine.

a) Implementai filtrul liniar adaptiv avnd ca parametri : dimensiunea


ferestrei de filtrare, dimensiunea blocului i variaia zgomotului (o
presupunem cunoscut).
b) Comparai performanele acestuia n termen de PSNR, n funcie de
parametrii si.
c) Comparai performanele filtrului n raport cu filtrul de mediere i cu
filtrul gaussian.

Pentru teste, se foate folosi un script de genul celui descris mai jos:

I=imread('lena512.bmp');
[M,N]=size(I);

Z=20*(2*rand(M,N)-1); % zgomot uniform


stdN=std(Z(:)'); % variatia zgomotului

J=uint8(double(I)+Z); % atacarea imaginii originale

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