Sunteți pe pagina 1din 11

ELIMINAREA ZGOMOTELOR DIN IMAGINI

Introducere
n lucrarea de fa mi-am propus s prezint cteva modaliti de eliminare a
zgomotelor din imagini. Pentru aceasta am utilizat o imagine n tonuri de gri, cu
dimensiunea de 512x512 pixeli, pe care am deteriorat-o cu 2 tipuri de zgomot (de tip
sare i piper i gaussian) iar apoi am ncercat eliminarea acestuia cu diferite tipuri
de filtre (liniar, adaptiv i neliniar.)

Zgomotul
Imaginile digitale sunt supuse unei mari varieti de tipuri de zgomote.
Zgomotul este un semnal aleator, care afecteaz informaia util con inut ntr-o
imagine. Zgomotul poate s apar de-a lungul unui lan de transmisiune sau prin
codarea i decodarea imaginii i reprezint un element perturbator nedorit. Zgomotul,
de regul, este rezultatul achiziiei defectuoase a imaginii i const n apari ia unor
pixeli cu valori care nu reflect valoarea lor real. Sunt mai multe ci prin care
zgomotul poate aprea ntr-o imagine, funcie de modul n care aceasta a fost creat.,
astfel:
- dac imaginea a fost scanat de pe o fotografie fcut pe film, textura
filmului poate fi o surs de zgomot. Zgomotul poate aprea i ca urmare a
deteriorrii filmului sau poate fi introdus chiar de scanner;
- dac imaginea este achiziionat direct n format digital mecanismul de
achiziie a datelor (lentila) poate introduce zgomot;
- transmiterea electronic a imaginilor poate introduce zgomot.
Exemplul cel mai simplu de zgomot este zgomotul impulsiv, caracterizat de
impulsuri pozitive i negative de amplitudine maxim posibil (relativ la numrul de
nivele de cuantizare ale imaginii) care afecteaz prin nlocuire o parte din pixelii
imaginii. Aceasta nseamn c imaginea va fi uniform acoperit de puncte foarte
nchise (negre) i foarte deschise (albe), rezultatul fiind ceea ce se numete zgomot de
tip sare i piper (vezi figura 1).

Pagina 1 din 11

(a)
(b)
Figura 1: Zgomotul "sare i piper": (a) imaginea original;
(b) imaginea cu 10% pixeli afectai de zgomot.

Zgomotul impulsiv nu este singurul model de degradare neliniar: exist


zgomote dependente de valoarea imaginii din pixelul afectat, precum i compuneri
neaditive ale zgomotului cu imaginea original (multiplicativ, convolutiv). Dintre
acestea amintim:
- zgomotul gaussian (figura 2)

(a)

(b)

Figura 2: Zgomotul Gaussian: (a) imaginea original;


(b) imaginea afectat de zgomot gaussian, SNR=5 dB.

- zgomotul uniform (figura 3)

(a)

(b)

Figura 3: Zgomotul uniform: (a) imaginea original; (b) imaginea afectat de zgomot
uniform, SNR=5 dB.

Operaia prin care se elimin zgomotul, datorat unor surse externe, dintr-o
imagine digital este filtrarea.
Pagina 2 din 11

Filtrarea imaginilor digitale este o operaie care se aplic local la nivelul


fiecrui pixel din imagine, nlocuind valoarea intensitii/culorii pixelului curent cu o
valoare ce depinde de valorile de intensitate/culoare ale pixelilor vecini. Numrul de
vecini luai n considerare va determina dimensiunea filtrului.

Filtrarea liniar
Operaia de filtrare liniar calculeaz noua valoare a unui pixel al imaginii (din
poziia (m, n)) ca o combinaie liniar (medie ponderat) a unui numr de valori din
imaginea original.
Filtrarea se cheam liniar pentru c operaia verific principiul superpozi iei
(liniaritii): pentru dou imagini f1 i f2, doi scalari a1 i a2 i operatorul liniar L
avem:
L(a1f1 + a2f2) = a1L(f1) + a2L(f2)
(1)
Operaia de filtrarea liniar calculeaz noua valoare a unui pixel al imaginii
(din poziia (m, n)) ca o combinaie liniar (medie ponderat) a unui numr de valori
din imaginea original:
(2)
W este vecintatea punctului curent n care se face calculul; W este numit
masc sau fereastr de filtrare i este o form plan, descris ca o mul ime de puncte
din spaiul cartezian, n coordonate relative (deci n alt sistem de coordonate dect
sistemul de coordonate a imaginii). Scalarii wkl sunt ataai poziiilor (k, l) din
fereastra de filtrare i poart numele de coeficieni ai filtrului. Spre exemplu, o masc
simpl de mediere este media aritmetic a valorilor dintr-o vecintate ptrat de 3 x 3
pixeli, centrat n pixelul curent; pentru acest caz, toi coeficienii vor avea valoarea
1/9 i masca de filtrare W va fi:
W = {(0, 0), (1, 0), (1, 0), (0, 1), (1, 1), (1, 1), (0, 1), (1, 1), (1, 1)}.
Pentru acest caz particula, expresia (2) devine:

Formula de definiie (2) nu este altceva dect suma produselor punct cu punct a
coeficienilor mtii i a valorilor pixelilor imaginii din zona de imagine peste care a
fost suprapus masca. Aceast sum de produse se calculeaz pentru fiecare punct al
imaginii, deplasnd masca. Descrierea algoritmului nu este ns altceva dect
descrierea plastic a unei operaii de convoluie bidimensional, n care, prin
convenie, masca de filtrare este considerat nucleul de convoluie. Deplasarea m tii
(ferestrei de filtrare) a condus la adoptarea denumirii de tehnic a ferestrei glisante;
aplicarea acesteia se poate descrie simplu:
Pagina 3 din 11

se plaseaz originea ferestrei de filtrare (pe rnd) n fiecare punct al imaginii


i se selecteaz punctele imaginii situate n interiorul ferestrei (putem
imagina fereastra de filtrare ca fiind o apertur ntr-o plac opac; ntr-o
anumit poziie a acesteia valorile selectate din imagine sunt valorile
punctelor ce se vd prin apertur).
pentru fiecare poziie se face suma produselor punct cu punct coeficient
masc valoare pixel.
Fereastra de filtrare este deci definit de form (mulimea W) i valori
(coeficienii wkl). Cele mai simple ferestre de filtrare sunt cele de form ptrat, avnd
originea n centru (deci fiind ptrate de dimensiuni impare: 3 x 3, 5 x 5, etc.)
Fereastra de filtrare are n general o dimensiune mult mai mic dect dimensiunile
imaginii (mai sunt numite i nuclee mici, fcnd referin la operaia de convolu ie).
Codul care urmeaz exemplific aceast cea mai simpl filtrare, cu un nuclee de
dimensiunea 3x3, 5x5, 7x7 i 9x9 aplicate unei imagini afectate de zgomot de tip
sare i piper .
clear all;
close all;
clc;
i=imread ('j:\1.bmp');
j=imnoise(i, 'salt & pepper', 0.2);
h=ones(3,3)/9;
j1=imfilter(j,h);
h2=ones(5,5)/25;
j2=imfilter(j,h2);
h3=ones(7,7)/49;
j3=imfilter(j,h3);
h4=ones(9,9)/81;
j4=imfilter(j,h4);
subplot(2,3,1) ,imshow(uint8(i)), title('Imagine originala'),
subplot(2,3,2),imshow(uint8(j)), title('Imagine cu zgomot "sare
si piper"'), subplot(2,3,3),imshow(uint8(j1)), title('Imagine
filtrata 3x3'), subplot(2,3,4),imshow(uint8(j2)), title('Imagine
filtrata 5x5'), subplot(2,3,5),imshow(uint8(j3)), title('Imagine
filtrata 7x7'), subplot(2,3,6),imshow(uint8(j4)), title('Imagine
filtrata 9x9');

Rularea acestui cod duce la urmtorul rezultat:

Pagina 4 din 11

Figura 4:
liniar

Eliminarea
a

zgomotului
piper

sare i

n
aplicrii
aceluiai
pentru un
zgomot de

cazul
cod
tip

gaussian se obine urmtorul rezultat:

Pagina 5 din 11

Figura 5: Eliminarea liniar a zgomotului gaussian

Se poate observa fenomenul de estompare a imaginii care este din ce n ce mai


evident odat cu cretere ordinului mtii de filtrare.
Filtrarea adaptiv
Termenul de adaptiv se refer la capacitatea filtrului de a-i ajusta comportarea
n funcie de anumite criterii. Prin procesul de adaptare, n fiecare nou punct
prelucrat, structura filtrului este alta, lund n considerare caracteristicile locale
pixelului curent prelucrat.
Atta timp ct n fiecare punct al imaginii operaia este diferit (deoarece se
face cu un filtru diferit), filtrarea global nu mai este liniar (nu mai respect
principiul superpoziiei). Adaptarea filtrelor liniare nu poate urmri dect dou
variante: modificarea formei ferestrei de filtrare sau modificarea coeficienilor unei
ferestre de filtrare de form fixat.
Modificarea formei ferestrei de filtrare este filtrul de netezire direcional
adaptiv, astfel c fereastra de filtrare nu mai este ptrat, ci va avea o form liniar,
orientat dup o anumit direcie. Pentru fiecare punct al imaginii se pot considera
mai multe orientri posibile pentru masca de mediere, iar din setul de valori obinute
pentru diferitele ferestre de filtrare, se alege aceea care este cea mai apropiat de
valoarea iniial din punctul curent.
Atta timp ct (cel puin teoretic) n fiecare punct al imaginii operaia este
diferit (deoarece se face cu un filtru diferit), filtrarea global nu mai este liniar
(numai respect principiul superpoziiei (1)).
Adaptarea filtrelor liniare nu poate urmri dect dou variante: modificarea
formei ferestrei de filtrare, sau modificarea coeficienilor unei ferestre de filtrare de
form fixat.
Exemplul cel mai folosit de modificare a modificare a formei ferestrei de
filtrare este filtrul de netezire direcional adaptiv. Termenul de filtrare direc ional
se refer la forma puternic orientat a ferestrei de filtrare (deci fereastra de filtrare nu
mai este ptrat, ci va avea o form liniar, orientat dup o anumit direc ie). Pentru
Pagina 6 din 11

fiecare punct al imaginii se pot considera mai multe orientri (deci mai multe direcii)
posibile pentru masca de mediere. Pentru fiecare dintre direciile alese se ob ine n
urma filtrrii o valoare. n mod ideal, dorim ca valoarea obinut prin filtrare s nu
difere n mod semnificativ de valoarea iniial din pixelul considerat. O diferen
semnificativ poate nsemna c punctul curent este situat pe un contur i acceptarea
acestei valori mult diferite de cea iniial produce efectul de nceoare a imaginii
(caracteristic oricrei filtrri de netezire). Soluia adus de filtrul adaptiv este de a
alege din setul de valori obinute pentru diferitele ferestre de filtrare pe aceea care
este cea mai apropiat de valoarea iniial din punctul curent.
Pentru filtrarea adaptiv am utilizat urmtorul cod, utiliznd aceleai
dimensiuni ale mtilor (3x3, 5x5, 7x7 i 9x9):
clear all;
close all;
clc;
i=imread ('j:\1.bmp');
j=imnoise(i, 'salt & pepper', 0.2);
j1=wiener2(j,[3 3]);
j2=wiener2(j,[5 5]);
j3=wiener2(j,[7 7]);
j4=wiener2(j,[9 9]);
subplot(2,3,1) ,imshow(uint8(i)), title('Imagine originala'),
subplot(2,3,2),imshow(uint8(j)), title('Imagine cu zgomot "sare
si piper"'), subplot(2,3,3),imshow(uint8(j1)), title('Imagine
filtrata 3x3'), subplot(2,3,4),imshow(uint8(j2)), title('Imagine
filtrata 5x5'), subplot(2,3,5),imshow(uint8(j3)), title('Imagine
filtrata 7x7'), subplot(2,3,6),imshow(uint8(j4)), title('Imagine
filtrata 9x9');

n cazul zgomotului sare i piper au fost obinute urmtoarele rezultate:

Pagina 7 din 11

Figura 5: Eliminarea
a

adaptiv

zgomotului
piper

sare i

cazul

zgomotului
gaussian au fost
obinute
urmtoarele
rezultate:
Figura 6:
Eliminarea
adaptiv a
zgomotului
gaussian

Se observ
c, n cazul
filtrrii
adaptive a imaginii afectate de zgomotul sare i piper imaginea obinut nu este cu
mult modificat, n schimb n cazul filtrrii unei imaginii afectate de zgomot gaussian
imaginea este mai bun.

Filtrarea neliniar
Pagina 8 din 11

Limitrile operaiilor liniare de filtrare apar n momentul n care se consider


zgomote ce nu au distribuie normal. Se impune considerarea i a altor metode de
filtrare, care nu mai respect principiul superpoziiei, i deci sunt neliniare. O clas
esenial de astfel de metode de filtrare sunt cele bazate pe ordonare.
Filtrele de ordine sunt operatori locali: filtrul este definit de o fereastr
(masc), care selecteaz din imaginea de prelucrat un numr de vecini ai pixelului
curent. Valorile selectate de fereastr de filtrare sunt apoi ordonate cresctor; dac
valorile selectate de o fereastr cu n poziii sunt {x1,x2,...,xn}, atunci acelai set de
valori, ordonate cresctor este {x(1),x(2),...,x(n)}.
n mod evident statistica de ordinul 1, x(1), este valoarea minim, iar statistica
de ordinul n, x(n), este valoarea maxim.
Ieirea filtrului de ordine de ordin k este statistica de ordinul k, cu k:[1, n]
rankk{x1,x2,...,xn}=x(k)

(4)

Ieirea unui filtru de ordine este una dintre valorile selectate de fereastra de
filtrare i deci nu se creeaz la ieire valori noi.

Filtrarea median
Filtrul median este un filtru de ordine a crui ieire este statistica de ordine de
ordin central a setului de valori selectate de fereastra de filtrare.

(5)

Ieirea filtrului median este deci valoarea din centrul secvenei ordonate; n
cazul secvenelor (ferestrelor de filtrare) de dimensiune par, aceast poziie central
nu exist, i atunci este definit ca media aritmetic a valorilor vecine centrului
imaginar. n practic, filtrul median se folosete doar cu ferestre de filtrare de
dimensiune impar, ceea ce conduce la posibilitatea de a scrie:
(6)
Codul urmtor aplic un filtru median cu ferestre de diferite valori unei imagini
degradate cu zgomot sare i piper:
clear all;
close all;
clc;
i=imread ('J:\1.bmp');
d=size(i);
jz=imnoise(i, 'salt & pepper', 0.2);

Pagina 9 din 11

j1=medfilt2(jz,[3 3]);
j2=medfilt2(jz,[5 5]);
j3=medfilt2(jz,[7 7]);
j4=medfilt2(jz,[9 9]);
for x=2:511
for y=2:511
j(x,y)=(i(x,y)+i(x-1,y)+i(x+1,y)+i(x,y-1)+i(x,y+1)+i(x1,y-1)+i(x-1,y+1)+i(x+1,y-1)+i(x+1,y+1))/9;
end
end
subplot(2,3,1) ,imshow(uint8(i)), title('Imagine originala'),
subplot(2,3,2),imshow(uint8(jz)), title('Imagine cu zgomot "sare
si piper"'), subplot(2,3,3),imshow(uint8(j1)), title('Imagine
filtrata 3x3'), subplot(2,3,4),imshow(uint8(j2)), title('Imagine
filtrata 5x5'), subplot(2,3,5),imshow(uint8(j3)), title('Imagine
filtrata 7x7'), subplot(2,3,6),imshow(uint8(j4)), title('Imagine
filtrata 9x9');

Rezultatul obinut este urmtorul:

Figura
neliniar a

7: Eliminarea

zgomotului
i piper

sare

Acelai filtru aplicat zgomotului gaussian:

Pagina 10 din 11

Figura 8: Eliminarea neliniar a zgomotului gaussian

Concluzii
n funcie de tipul de zgomot care afecteaz imaginea, se pot aplica diverse
tipuri de filtrri. Pentru imaginile afectate de zgomot uniform se pot aplica filtre
liniare (caz n care nu sunt pstrate contururile), sau filtre adaptive filtre ce
protejeaz inclusiv contururile. Dac imaginile sunt afectate de zgomot sare i
piper se recomand aplicarea filtrelor mediane.

Bibliografie
1. PRELUCRAREA I ANALIZA IMAGINILOR, Constantin VERTAN, 1999;
2. Help MATLAB;

Pagina 11 din 11

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