eliminarea zgomotelor din imagini

17
ELIMINAREA ZGOMOTELOR DIN IMAGINI Introducere În lucrarea de față mi-am propus să prezint câteva modalități 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 varietăți de tipuri de zgomote. Zgomotul este un semnal aleator, care afectează informația 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 achiziției defectuoase a imaginii și constă în apariția unor pixeli cu valori care nu reflectă valoarea lor reală. Sunt mai multe căi prin care zgomotul poate apărea într-o imagine, funcție de modul în care aceasta a fost creată., astfel: - dacă imaginea a fost scanată de pe o fotografie făcută pe film, textura filmului poate fi o sursă de zgomot. Zgomotul poate apărea și ca urmare a deteriorării filmului sau poate fi introdus chiar de scanner; Pagina 1 din 17

Upload: spanu-catalin

Post on 19-Dec-2015

112 views

Category:

Documents


8 download

DESCRIPTION

Proiect prelucrarea imaginilor

TRANSCRIPT

ELIMINAREA ZGOMOTELOR DIN IMAGINIIntroducere

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 coninut 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 apariia 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).

(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.

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 superpoziiei (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 mulime 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 mtii (ferestrei de filtrare) a condus la adoptarea denumirii de tehnic a ferestrei glisante; aplicarea acesteia se poate descrie simplu:

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 convoluie). 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:Figura 4: Eliminarea liniar a zgomotului sare i pipern cazul aplicrii aceluiai cod pentru un zgomot de tip gaussian se obine urmtorul rezultat:

Figura 5: Eliminarea liniar a zgomotului gaussianSe poate observa fenomenul de estompare a imaginii care este din ce n ce mai evident odat cu cretere ordinului mtii de filtrare.Filtrarea adaptivTermenul 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 direcional 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 direcie). Pentru 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 obine 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:

Figura 5: Eliminarea adaptiv a zgomotului sare i pipern cazul zgomotului gaussian au fost obinute urmtoarele rezultate:Figura 6: Eliminarea adaptiv a zgomotului gaussianSe 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 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);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(x-1,y-1)+i(x-1,y+1)+i(x+1,y-1)+i(x+1,y+1))/9; endendsubplot(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 7: Eliminarea neliniar a zgomotului sare i piperAcelai filtru aplicat zgomotului gaussian:

Figura 8: Eliminarea neliniar a zgomotului gaussianConcluziin 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.

Bibliografie1. PRELUCRAREA I ANALIZA IMAGINILOR, Constantin VERTAN, 1999;2. Help MATLAB;Pagina 1 din 12