FACULT ATEA DE INGINERI E, INFORM ATICĂ ȘI GEOGR AFIE [614090]

1
UNIVERSIT ATEA “SPIRU H ARET” BUCUREȘ TI
FACULT ATEA DE INGINERI E, INFORM ATICĂ ȘI GEOGR AFIE

LUCR ARE DE DISERT AȚIE
ANALIZA ȘI REST AURAREA IMAGINILOR

COORDON ATOR ȘTIIȚ IFIC: MASTERAND: [anonimizat]: Vîlcu Dana Mihaela BOROS ANDREI

BUCURESTI
2018

2
Cuprins

Introducere 3

2 Imagini digit ale 5

2.1 Tipuri de fisiere………………………………………………………………… …..5
2.2 Imagini alb-negru ………………………………………… …………………… …..5
2.3 Discretiz area imaginilor ……………………………… … ……………………… … 7
2.4 Îmbun ătățirea imaginilor ……………………………… …………………………………. 9
2.3.1 Oper ații punctu ale …………………………………… ……………………… ….10
2.3.1.1 Oper atori punctu ali de modifi care a contr astului …… ………………………. ..11
2.3.1.2 Tr ansform ări de decup are ………………………… ………………………… …16
2.3.1.3 Oper atori punctu ali de modifi care a histogr amei…… ……………………… …17
2.3.2 Oper ații de vecin ătate.. ……………………………… ………………………… ..20
2.3.2.1 V ecinătatea unui pixel… ……………………………… ……………………… ..21
2.3.2.2 Aplicarea de m ăști, im aginilor ……………………… …………………… ….21

3 Zgomot î n im agini 24

3.1 Prin cipalele tipuri de zgomot ………………………………… ………………… …25
3.1.1 Z gomotul cu distribuț ie uniform ă ……………………… ……………………… …25
3.1.2 Zgomotul de tip ,, Sare și piper" ………………………… .……………………… 26
3.1.3 Zg omotul cu distribuț ie gaussiană…………………… ………………………. ….27
3.2 Determin area prezentei , zgomotului î n imagini………… …………………….. ….27

4 Filtre digit ale 31

4.1 Filtrarea liniară a imaginilor………………………………… ………………… ….32
4.1.1 Filtre de tip "trece -jos"………………………………… …………………… …..33
4.1.2 Filtre de tip "trece -sus"………………………………… …………………… …..39
4.2 Fi ltrarea nelini ară a imaginilor………………………… ………………………… …40

5 Rest aurarea imaginilor 46

6 Descriere a aplicației 48
6.1 Tehnologii folosite ………………………………………… ………………….. …..48
6.2 Utiliz area aplicației………………………………………… ……………………………. 48

7 Concluzii 61

Bibliogr afie 62

3
Capitolul 1
Introducere

În ultimii ani, tehnologia informaț iei a avut o dezvoltare spectaculoasă . Multe
dintre pro blemele tehnice au acum modalitați, de rezolvare care până nu demult pă reau
imposibil de re alizat. O poziț ie, import antă și de actualitate este o cupată de explo atarea
inform ației,vizu ale.
Cea mai mare parte a inform ațiilor, referito are la mediul î nconjur ător se obț in
prin v ăz. Nevoia de a înlocui observatorul uman cu o mașină, a dus la apariția, prelucrării și
analizei imaginilor. Acest domeniu al prelucrării și, analizei imaginilor presupune
achiziționarea, transformarea și, utilizarea informației, din imagini. Acestea vor fi preluate
și, exploatate într-o formă digitală cu ajutorul unor calculatoare de uz general sau
specialit ate.
Realizarea unor dezvoltări teoretice și, tehnologice importante au condus la
posibilitatea utlizarii, prelucrării imaginilor pentru realizarea unei mașini, capabile să
îndeplinească funcții, vizuale caracteristice tuturor ființelor vii. Prelucrarea și a naliză
imaginilor are aplicații, importante în diverse domenii .

Dintre aceste aplicații, putem aminti:
– aplicații în medicină precum MRI (Magnetic Resonance Imaging), CT (Computer
Tomography), radiografiile pentru investigarea organelor corpului uman
– imagistică satelitara (meteorologie, cartografie, aplicații militare)
– aplicații în securitate pentru supraveghere sau urmărire
– aplicații de larg consum (fotografiile digitale)
Imaginea ce se vede pe ecran nu este întotdeauna informația reală din scenă sau
informația ce a fost achiziționată din scenă respectivă. Acest lucru poate avea diverse cauze:
zgomot electric, turbulențe atmosferice, funcționarea proastă a celulelor din senzorii camerei,
erori în transmiterea datelor, și altele. Astfel, apare nevoia că asupra acestor imagini să fie
aplicate diferite tehnici de îmbunătățire și restaurare.
În această lucrare ne vom ocupa de st udiul principalelor tehnici de îımbunătăț ire și
restaurarea imaginilor. Pentru o înțelegere mai ușoară a acestor tehnici este necesară
studierea și înțelegerea principalelor fenomene care afectează imaginile. Astfel, vor fi
prezentate în ac eastă lucrare inclusiv principalele tipuri de zgomot ce pot afecta o imagine.

4
Fără îndoială, prelucrarea și analiză imaginilor nu se rezumă la suportul hard și soft,
având la baza o gama largă de algoritmi. Astfel, această lucrare conține și baza matemati că
necesară implementării acestor algoritmi. Întrucât avem de -a face cu lucrul pe imagini,
lucrarea conține un suport imagistic bogat ce permite cititorului să vadă efectul aplicării
algoritmilor prezentați. Aplicația propusă vine în sprijinul celor inter esați de domeniul
analizei și prelucrării imaginilor, oferind posibilitatea de a testa ”pe viu” modul de
îmbunătățire, respectiv restaurare a imaginilor. De asemenea, aplicația conține diverse
modalități de degradare a imaginilor, oferind astfel materialel e nece sare testării
algoritmilor. Mai multe detalii vor fi prezentate în capitolul 6. În continuare vom realiza o
scurtă introducere a tehnicilor de îmbunătățire și restaurare a imaginilor împreună cu modul
de aplicare a acestora.

5
Capitolul 2
Imagini digit ale
Imaginile pot fi descrise de distribuția spațială a intensității luminoase într -un plan.
Din punct de vedere matematic, distribuția spațială a intensității luminoase (I) poate fi
descrisă printr -o funcție continuă de două variabile spațial continue
(𝑥,𝑦)=𝑝:𝐼 (𝑥,𝑦)=𝐼(𝑝)
Imaginile nu pot fi tratate că funcții definite pe un domeniu continuu de
calculatoarele existente, ci ele pot fi văzute doar că matrici discrete de numere. Acesta este
motivul pentru care este necesar că imaginile continue să fie trans formate și reprezentate că
matrici bi -dimensionale de puncte, prin discretizare. Un punct al unei astfel de matrici se
numește pixel1. Prin urmare, un pixel este caracterizat prin poziția și valo area sa .
După tipul datelor din această structura bidimensională, imaginile prelucrate pot fi
împărțite în mai multe categorii:
 imagini scalare – fiecare componentă este un scalar (un unic număr); imaginile
monocrome pot fi date că exemple de astfel de imagini (în care punctele au doar două
valori posibi le, ce corespund unui conținut binar al imaginii, în general alb -negru ) ¸și de
asemenea imaginile cu nivele de gri (precum imaginea de luminanță de pe ecranele
televizoarelor alb -negru).
 imagini vectoriale – fiecare componentă este reprezentată printr -un vector de numere;
imaginile color sunt cazul particular cel mai de interes, în care vectorul are 3 elemente (ce
corespund celor 3 constitu ente de baza ale oricărei culori).
2.1 Tipuri de fisiere
Aplicația dezvoltată permite deschidere, prelucrarea și salv area imaginilor în format
JPEG/BMP. De ce acest format? Pentru că este unul dintre cele mai simple formate.

1cuvânt preluat din engleză, care provine de la “picture element”

6
BMP este un acronim pentru Bimap, iar acest format a fost dezvoltat de Microsoft și
IBM. Imaginile în format BMP :
– de 1 bit
– de 4 biți ți au 16 culori pentru scară de gri
– de 8 biți și au 256 de culori pentru scară de gri
– de 16 biți având 65 536 de culori pentru scară de gri
În informatică , JPEG (pronunțată "gei-peg"; IPA: /ˈd ʒeɪpɛg/) este o metodă foarte des utilizată
de compresie a imaginilor fotografice . Fișierele conți nând imagini compresate grație acestei
metode poartă în general extensia ".jpg". Scopul formatului JPEG a fost de a reduce
dimensiunea fișierelor ce conți n imagini grafice de tip fotografic, naturale și cu un număr
mare de culori fără a afecta calitatea imaginii.

Imagini alb-negru
O imagine alb -negru est e alcătuită din pixeli care deți n un număr corespunzător
nivelului de gri dintr -o anumită locație a imaginii. Aceste niveluri de gri acoperă întregul
interval de la alb la negru într -o serie de pași foarte fini, în mod normal 256 tonuri diferite de
gri. Deoarece ochiul poate distinge ab ia 200 de nuanțe diferite de gri, acest lucru este suficient
pentru a da iluzia unei scări tonale fără trepte, așa cum este ilustrat in imaginea de mai jos:

7
Figur a 2.1 Sc ara tonala de gri

Presupunând 256 tonuri de gri, fiecare pixel alb -negru poate fi stocat într -un singur
octet (8 biți) de memorie. Imaginile color sunt formate din pixeli care dețin 3 numere
corespunzătoare tonurilor de roșu,verde și albastru al unei anumite locații a imaginii.
Orice culoare poate fi obținută prin amestecarea c antității necesare de lumina roșie,
verde și albastră. Asta înseamnă 16,7 milioane de culori diferite posibile. Observăm că, pentru
imagini de aceeași dimensiune, o versiune alb -negru va ocupă de 3 ori mai puțină memorie
decât versiunea color. O altă clasi ficare a imaginilor scalare se poate face după semnificația ce
se da valorii numerice a pixelilor. Vom distinge astfel imagini de intensitate și imagini
indexate.
O imagine de intensitate este o imagine n care valoarea fiecărui pixel este o măsură
directă a intensității luminoase sau a mărimii fizice preluate de senzor, că de exemplu în
imaginile cu nivele de gri. Pixelii unei imagini de intensitate pot avea orice fel de valori :
reale sau naturale (depinde dacă imaginea este sau nu cuantizata). O imagine indexată este cea
în care valoarea fiecărui pixel este un indice prin care se regăsește informația de culoare
asociată pixelului respectiv.
Așadar, pentru reprezentarea sau afișarea unei imagini indexate este necesară o
informație suplimentară, de asocier e între indici și culori. Această asociere se face prin
intermediul tabelei de culoare. Tabela de culoare este o matrice în care fiecare linie conține
descrierea unei culori (cele trei componente care definesc culoarea – intensitățile relative de
roșu, ver de și albastru care definesc culoarea prin amestec aditiv). Deci tabela de culoare are 3
coloane; numărul de linii ale acesteia este egal cu numărul de culori din imaginea reprezentată
și este în mod tipic o putere a lui 2.
Indicele (valoarea pixelului) va fi numărul de ordine din tabela de culoare pe care se
găsește descrierea culorii. Este evident că valorile pixelilor unei imagini indexate nu pot fi
decât numere naturale, fiind indici într -o matrice.

8
Pentru o imagine cu tonuri de gri, componentele de ro șu, verde și albastru ale fiecărei
culori din paleta de culoare sunt identice. Dacă specificarea componentelor de culoare se face
prin numere de 8 biți (cazul cel mai des folosit, între 0 și 255), tabela de culoare va avea 256
culori (tonuri de gri) diferi te. Specificarea acestora se face cu indecsi între 0 și 255, alocați
conform convenției 0 -negru, 255 -alb. În acest fel, pentru o imagine indexată cu tonuri de gri,
nu mai este necesară specificarea tabelei de culoare; culorii reprezentate de indexul i, îi
corespunde tonul i de gri, adică tripletul RGB2(i,i,i). Cum spuneam mai sus, pentru procesarea
imaginilor (de exemplu cu un calculator) este nevoie de discretizarea imaginilor, adică
transformarea acestora într -o matrice care conține elementele de imagine (pixel).
Discretizarea imaginilor se face în doi pași: discretizare spațială (esantionarea) ¸și
discretizarea în valoare (cuantizarea).

2.2 Discretiz area imaginilor
Discretizarea spațială (esantionarea) a unei imagini analogice se realizează cu
ajutorul unei rețele discrete f(l ∗ ∆x, k ∗ ∆y), l, k ∈ Z. Prin această operație vom obține
reprezentarea imaginii sub formă unei matrici cu L linii și K coloane : l ≤ L, k ≤ K. Prin
urmare, vom obține L ∗ K pixeli, iar imagi nea va putea fi scrisă sub forma :
𝐴={𝑎(𝑙,𝑘),1≤𝑘≤𝐾,1≤1≤𝐿},1,𝑘,𝐿,𝐾∈𝑍

2Red Green Blue – Rosu, Verde, Albastru: sistemul primar de reprezentare a culorilor

9
Reprezent area matriceală a imaginii:
a1,1 a1,2 … a1,k
a2,2 a2,2 … a2,k
… … … …
aL,1 aL,2 … aL,k

Discretizarea spațială este posibilă datorită puterii de rezoluție limitată a sistemului
vizual uman. Practic, procesul discretizarii spațiale are loc în două etape succesive
corespunzătoare celor două direcții. În urmă discretizarii verticale (după axa y) rezultă linii,
iar în urmă discretizarii orizontale (după axa x) rezultă elemente discrete de imagine (pixel).
Discretizarea în valoare (cuantizarea) constă în reprezentarea cu un număr dat de biți
a valorilor matricii obținute după eșantionare. Cuantizarea poate fi scrisă astfel:
𝑓𝑞(1∗∆𝑥,𝑘∗∆𝑦),1,𝑘∈𝑍,𝑘≤𝐾,1≤𝐿 𝑐𝑢 𝑓𝑞(1∗∆𝑥,𝑘∗∆𝑦)∈{𝑓1,𝑓2,…,𝑓𝑛},
unde n este numărul nivelurilor de cuantizare a imaginii (numărul nivelurilor de gri). De
exemplu, pentru n=2 avem o imagine binară. Fiecărui pixel îi va corespunde un anumit nivel
de gri (pentru imaginile alb -negru) sau o anumită culoare (pentru imaginile color) codificată
printr -un număr constant de biți. Un pixel o arecare al,k va fi cod at, în reprezent are bin ară,
astfel:

(a1,k) binar = b n−1bn−2…b1b0
căruia îi corespunde o v aloare zecim ală:
(al,k) zecim al = b n−1 ∗ 2 n−1 + b n−2 ∗ 2 n−2 + … + b 1 ∗ 2 1 + b 0 ∗ 2 0

care reprezintă nivelul q al scării de 2n nivele de gri considerate. Negrul este considerat că
având nivelul logic 0, întrucât scrierea să în binar este 00…00, iar albul are nivelul logic 1,
fiind scris în binar 11…11.

10
Pentru o imagine reprezentată pe 8 biți numă rul nivelurilor de gri este 28 = 256,
negrul fiind codat cu nivelul q=0 iar albul cu nivelul q=255. Pixelul a3,4 , al 4 -lea pixel de pe
rândul al 3 -lea, e ste codat cu octetul 00101001 ș i are nivelul de gri q=41.
Imaginile digitale pot fi stocate în vederea vizualizării sau prelucrării ulterioare.
Imaginile sunt stocate pe disc sub formă unor fișiere. În funcție de formatul în care păstrează
datele ce reprezintă imagini, fișierele pot fi: BMP, JPEG, GÎF, TIFF, etc.
Formatul cel mai simplu pentru fișierele imagine este cel al firmei Microsoft, BMP3
(Microsoft Windows Bitmap). Acest format permite stocarea imaginilor digitale fără codare
sau pierdere de informație, excepție făcând reprezentarea binară.
2.3 Îmbunătățirea imaginilor
Îmbunătățirea imaginilor se referă la un ansamblu de operații de prelucrare a
imaginilor, scopul acestora find acela de a evidenția anumite caracteristici precum
muchiile sau contururile sau acela de a elimina zgomotul. Prin îmbunătățirea imaginilor se
dorește obținerea unei superiorități a vizibilității componentelor acesteia.

În general, îmbunătățirea imaginii este strâns legată de percepția vizuală a
utilizatorului final al acesteia, calitatea fi ind un criteriu subiectiv. Îmbunătățirea se
face fără a presupune că imaginea a fost afectată de degradare și fără a se ține cont de
informații despre imaginea originală. Chiar și o imagine originală, nedegradata, se poate
îmbunătății, dacă această varianta modificată este preferată de utilizatorul final al acesteia.

Imaginea originală și imaginea modificată vor avea acel eași dimensiuni. Prin
îmbunătățirea unei imagini nu se mărește cantitatea de informație pe care o conține, ci această
informație va fi prezentată într-o altă formă. Această ultima afi rmatie este corectă la o
examinare superficială, dar se poate aduce un c ontra exemplu la această formulare: din
perspectiva utilizatorului, în cazul imaginilor obținute în condiții extreme de iluminare,
informația există, dar nu poate fi folosită.

3 https://en.wikipedia.org/wiki/BMP_file_format

11
Putem consideră trei categorii de operatori de îmbunătățire a imaginilor:
 operații punctuale – între valoarea originală și valoarea de după îmbunătățirea fiecărui
pixel există o corespondență punctuală;
 operați i spațiale – mai sunt numite și operații de vecinătate; atât valoarea originală a
pixelului curent cât și valorile originale ale pixelilor vecini vor contribui la nouă
valoare a acestuia;
 operații integrale – nouă valoare a pixelului curent se va obține prin transformare
integrală a valorilor tuturor pixelilor din imaginea originală. În continuare vom
presupune că imaginile utilizate vor fi reprezentate prin matrici cu L linii și K coloane.
De asemenea, imagine originală o vom notă cu O și cu M imaginea o bținută din
 imaginea origin ală printr -o oper ație de îmbun ătățire. Astfel, cele dou ă imagini pot fi
scrise, m atematic:
𝑂={𝑂(𝑙,𝑘)|1≤𝑘≤𝐾,1≤1≤𝐿} si
𝑀={𝑀 (𝑙,𝑘) | 1 ≤ 𝑘 ≤ 𝐾,1 ≤ 𝑙 ≤ 𝐿}.
Îmbunătățirea imaginilor poate fi reprezentată grafic în felul următor:

2.3.1 Operații punctu ale
Operatorii punctuali de îmbunătățire a imaginilor sunt transformări a valorii unui
pixel, pot fi priviți că funcții, iar rezultatul acestora depind doar de valoarea pixelul asupra
căruia sunt aplicați. Matematic putem scrie :

𝑚(𝑙,𝑘)=𝑇(𝑜(𝑙,𝑘)),∀1≤𝑘≤𝐾,∀1≤𝑙≤𝐿
unde m este imaginea îmbunătățită, o este imaginea originală, m (l, k) este nouă valoare a
pixelului curent, o (l, k) este vechea valoare a pixelului curent, iar transformarea punctuală a
fost notată cu T. Grafic se poate notă astfel :
Procesul de îmbunătățire a unei imagini folosind operatorii punctuali4

12

Dintre operatorii punctuali putem aminti: operatori de modificare a constrastului,
transformări de decupare și operatori de modif icare a histogramei. Vom prezent a în
continuare operatorii punctuali .

2.3.1.1 Operatori punctuali de modificare a contrastului

Pentru o imagine cu niveluri de gri operația de modificare a constrastului se referă la
mărirea sau micșorarea intervalului de niveluri de gri al imaginii, păstrând numărul total al
acestora, notat cu N.
Fie T o operație punctuală de modificare a contrastului, realizată prin intermediul funcției T.
Atunci:

• T trebuie să păstreze gama admisibilă de valori. Dacă am avut L nivele de cu antizare, atunci
0≤𝑇(𝑢)≤𝐿−1∀𝑢∈[0,𝐿−1]
• T trebuie să fie crescătoare sau descrescătoare, pentru a păstra ordinea între nivelele de gri
Accentu area contr astului
Operația de accentuare a contrastului se folosește în special pentru imaginile cu un
contrast scăzut. Contrastul scăzut poate fi cauzat de o slabă iluminare, de o iluminare
neuniformă sau datorită senzorului de captura a imaginii. O funcție de accentuare a
contrastului poate fi scrisă matemat ic în felul următor:

4https://www.scribd.com/document/56586987/Aa -Carte -PAI-Integrala/p.57

13
unde cu antizarea tonurilor de gri se f ace pe L nivele (c azul cel m ai frecvent fiind L=256,
cuantizare pe 8 biț i iar x este în [0, 255]). P antele celor 3 segmente de dre apta au fost not ate
cu α, β, respectiv γ.

O ”apropiere” a nivelelor de gri este corespunz ătoare unei p ante subunit are, iar
”dep ărtarea” nivelelor de gri, deci o accentu are a contr astului, corespunde unei p ante
supraunitare.

Imaginea origin ală Imaginea modific ată

Accentu area contr astului

14
Întinderea maximă a contrastului
Întinderea maximă a contrastului este un caz particular al operației de accentuare a
contrastului. Este utilizată, în general, pentru eliminarea zgomotului din imagini, atunci când
se știe intervalul [a, b] în care ia valori. Funcția de iıntindere maximă a contrastului este
următoarea :
5http://www.miv.ro/ro/documentatie/pi/PIlab03.pdf

Pantă supraunitară va distanță nivelele de gri din intervalul [a, b] , iar ni velele de gri
din afară intervalului vor fi transformate în alb, respectiv negru.

Funcț ia de întindere m aximă a contr astului

Contrastul a fost î ntins l a maxim:

Imaginea origin ală Imaginea modific ată
Întindere a maximă a contr astului

15
Binarizarea imaginilor
Întinderea maximă a constrastului are un caz special, atunci când a=b, numit
binarizarea imaginilor6. Pentru o imagine în tonuri de gri, prin binarizare obținem o imagine
care conține 2 nivele de gri: alb și negru.

Pentru imagini alb – negru, operatorul de binarizare este :
𝑇(𝑥)={𝑜 𝑝𝑒𝑛𝑡𝑟𝑢 𝑥<𝑇
𝐿−1 𝑝𝑒𝑛𝑡𝑟𝑢 𝑥≥𝑇
unde T este o v aloare întreagă din [0, L) , numit ă prag.

Pentru im aginile color avem:
𝑇(𝑣)={0 𝑝𝑒𝑛𝑡𝑟𝑢 𝑌(𝑣)<𝑇
𝐿−1 𝑝𝑒𝑛𝑡𝑟𝑢 𝑌(𝑣)≥𝑇

unde v este culo area pixelului, un vector tridimension al, iar Y (v) este lumin antă. Culo area
pixelului po ate fi v = (R, G, B) i ar lumin anta are formul a 𝑌=0.3∗𝑅+0.6∗𝐺+0.1∗𝐵

6http://etc.unitbv.ro/~csaba.kertesz/pds/curs/PI -curs02.pdf

16

Imaginea origin ală Imaginea modific ată
Binarizarea unei im agini

Negativarea imaginilor

Negativarea imaginilor poate fi considerată cel mai simplu caz de modificare a
contrastului unei imagini. Inversand ordinea nivelelor de gri, obținem negativul unei imagini.
Pentru imagini în tonuri de gri, funcția prin care se obține negativul este :
𝑇(𝑥)=(𝐿−1)−𝑥
iar pentru im agini color avem:
𝑇(𝑣)=((𝐿−1)−𝑅,(𝐿−1)−𝐺,(𝐿−1)−𝐵)

Funcț ia de neg ativare a imaginilor în tonuri de gri arată astfel:

Funcț ia de neg ativizare a imaginilor î n tonuri de gri

17

Negativarea imaginilor este utilă în domenii precum medicină, pentru afișarea
imaginilor medicale, sau pentru afișarea imaginilor negative pe suporturi de tip pelicula.

Avem m ai jos un exemplu de im agine neg ativată:

Imaginea origin ală Imaginea modific ată

Negativarea unei im agini

2.3.1.2 Tr ansform ari de decup are

Decuparea înseamnă îndepărtarea unor părți dintr -o imagine cu scopul de a -i
modifică dimensiunile, pentru a accentua subiectul, pentru a îndepărta detalii nedorite în
imagine7.
Dacă s -a realizat decuparea unei imagini, nu se poate obține originalul din bucată
decupată dacă nu există informații de revenire. Dacă bucată decupată a fost salvată, singurul
lucru care se mai poate face este adăugarea unei benzi în jurul acesteia, folosind analiză
texturii. Această metodă este eficientă doar dacă această bandă se poate îmbină cu imaginea
existența, ceea ce se întâmplă dacă imaginea are detalii puține sau dacă există un ”șablon”
din natură, precum iarbă sau cerul. Dacă au fost obiecte tăiate de marginea imaginii, nu se
poate adaugă această bandă .

7http://www.miv.ro/ro/documentatie/pi/PIlab03.pdf

18
Decuparea imaginilor poate fi făcută cu păstrarea fundalului sau fără păstrarea
fundalului. Decuparea cu păstrarea fundalului se face utilizând formulă :

T(x)= {𝐿−1 𝑝𝑒𝑛𝑡𝑟𝑢 𝑥∈[𝑎,𝑏]
𝑥 𝑖𝑛 𝑟𝑒𝑠𝑡

Funcț ia de decup are cu p ăstrarea fundalului iar decup area fără păstrarea fundalului cu
formul a:

Aceste funcț ii permit decup area unor regiuni dintr -o imagine corespunz ătoare
unor anumite nivele de gri8, fiind folosite atunci când anumite caracteristici ale imaginii se
găsesc în nivelele de gri respective. De exemplu, din imaginile obținute de un
satelit meteo pot fi decupați norii , regiuni de joase temperatura, având nivele de gri
direct proporționale cu valorile temperaturilor joase.

8http://www.miv.ro/ro/documentatie/pi/PIlab03.pdf

19
2.3.1.3 Oper atori punctu ali de modific are a histogr amei

Pentru o imagine în tonuri de gri9, există 256 valori diferite de intensitate, deci histograma va
contine 256 de numere corespunzătoare distribuție a pixelilor între acele nivele de gri.
Histograma se poate realiza și pentru imagini color. Există posibilitatea realizării
histogramelor individuale pentru nuanțele de roșu, verde sau albastru, sau se poate realiza o
histograma 3 -D, având cele 3 axe rep rezentate de cele trei culori: roșu, verde și albastru, iar
numărul de pixeli este dat de luminozitatea în fiecare punct.

Histograma se realizează parcurgând o singură dată imaginea și reținând numărul de
pixeli găsiți pentru fiecare valoare a intensități i.

Pentru o im agine f de dimensiune M * N si L nivele de gri, histogr ama se po ate scrie
ca funcț ia discret ă:

Histogr amele de obicei sunt norm alizate de num ărul tot al de pixeli din im agine. O histogr amă
norm alizată are form a:
p(rk)=𝑛
𝑀∗𝑁 ,𝑘=0,1,2,……….𝐿−1

unde p(r k) este prob abilitatea de apariție a valorii r k. Histogr ama se m ai poate scrie î n felul
următor:

h(i)=1
𝑀∗𝑁 ∑ ∑ 𝛾(𝑖,𝑓(𝑚,𝑛)),𝑖=0,1…𝐿−1𝑁−1
𝑛−0𝑀−1
𝑚=0

9https://www.scribd.com/document/56586987/Aa -Carte -PAI-Integrala/p.64

20
unde funcț ia 𝛾 este definit ă în felul urm ător:

𝛾(𝑥,𝑦)={1 𝑑𝑎𝑐ă 𝑥=𝑦
0 𝑑𝑎𝑐ă 𝑥≠𝑦

Din punct de vedere statistic, histogramă poate fi considerată funcție de densitate de
probabilitate a unei variabile aleatoare: valoarea fiecărui pixel este realizarea unei
variabile aleatoare asociată nivelelor de gri. Astfel, histogramă verifică funcția de
normare:

∑ℎ(𝑖)=1𝐿−1
𝑖=0

O imagine bine contrastată va acoperi majoritatea nivelelor de gri posibile iar
histograma va avea o formă n eregulată. Reciproc, din analiza histogramei se pot deduce
informații despre proprietățile imaginii, dar această nu se poate reconstrui din histogramă
întrucât mai multe ima gini pot avea aceeași histogramă .

Dacă ima ginea este potrivită atunci valorile intensității pixelilor vor fi
concentrate în jurul a două valori distincte. Un prag potrivit pentru a separa cele două grupuri
va fi o valoare între cele d ouă "vârfuri" din h istogramă . Dacă nu avem o astfel de distribuți e,
atunci este puțin probabil ca să se ob țină o segmentare bună prin "pră guire".
Sunt utilizate și modi ficate de mai mulți operatori de îmbunătățirea imaginilor. Doi
operatori care sunt strâns legați de histogramă sunt întinderea contrastului și egalizarea
histogramei, și se bazează pe presupunerea că o imagine trebuie să utilizeze întreagă gama de
intensitate pentru a avea un contrast maxim.
Se presupune că imaginea ideală are o distribuție uniformă a nivelurilor de gri.
Pentru a obține imaginea ideală, operatorii de transformare trebuie să modifice histogramă
imaginii astfel încât ea să devină uniformă.
Egalizarea histogramei permite anumitor zone cu un contrast scăzut al unei imagini
să obțină un contrast mai ridicat.

21

Variabilei aleatoare ξ cu densit atea de prob abilitate w ξ (x) și funcț ia de rep artiție
F (x) = P{ ξ ≤ x} i se v a asocia unui pixel din im agine. V ariabila n cu funcț ia de rep artiție:

Fn (x) = ∫𝑝𝜉 (𝑡)𝑑𝑡𝑥
0

Este uniform distribuit ă pe interv alul (0,1), i ar pξ (xi), x i = 0,1…L – 1 sunt prob abilitățiile de
apariție calculate pe b aza histogr amei10 astfel:

pξ ( xi) = ℎ (𝑥𝑖)
∑ ℎ (𝑥𝑖)𝐿−1
𝑖=0

Noile nivele de gri se vor c alcula cu formulele:

hc (x) = ∑ 𝑝𝜉 (𝑥𝑖)𝑥
𝑥𝑖=0

nivel nou =[ℎ𝑐 [𝑛𝑖𝑣𝑒𝑙 𝑣𝑒𝑐ℎ𝑖]−ℎ𝑐𝑚𝑖𝑛
1−ℎ𝑐𝑚𝑖𝑛∗( 𝐿−1)=0.5]

unde hc este histogr ama cumul ativă si h cmin valoarea minim a a acestei a.

Deși operația de egalizare a histogramei pare o operație punctuală, ea este totuși o operație
integrală pentru că se utilizează valorile tuturor pixelilor din imagine în formulă de calcul a
noii valori

10http://www.miv.ro/ro/documentatie/pi/PIlab04. pdf

22
2.3.2.1 Vecin ătatea unui pixel

Pentru un pixel, vecinătatea acestuia se referă la o mulțime de pixeli din jurul
pixelului curent. A specifică o vecinătate pentru un pixel se rezumă la a specifică pozițiile
pixelilor din vecinătatea respectivă față de pixelul curent. Astfel, vecinătatea unui pixel poate
fi descrisă că o mulțime de tipul următor :

V(l,c ) = {( l + m 1 , c + n 1), ( l + m 2, c + n 2 ),…, (l + m k, c + n k) } i ar transform area T se po ate
scrie:
g (l, c) = T (f (l+ m 1,c + n1) , f (l+m 2, c +n 2 ), …, f ( l + m k,c +n k )).

Cele m ai comune 2 definiț ii de vecin ătăți ale unui pixel sunt vecin ătatea de 4 pixeli ș i
vecin ătatea de 8 pixeli. Vecin ătatea de 4 pixeli cuprinde pixelii aflați pe poziț iile
( l- 1,c ), (l + 1, c), (l, c – 1), (l, c + 1), poziții referite ș i ca vecinii din nord, sud, este ș i vest a
pixelului ( l,c). Vecin ătatea de 8 pixeli cuprinde pixelii din vecin ătatea de 4 pixeli l a care se
adaugă cei de pe di agonală, adică pixelii ( l – 1, c – 1 ), ( l- 1, c + 1 ), ( l + 1, c -1),
(l + 1, c +1).

N
W * E
S
Vecin ătatea de 4 pixeli Vecinătatea de 8 pixeli

Oricare dintre aceste 2 vecin ătăți poate fi folosit ă în algoritmi. Spunem c ă pixelul (l’,c’) este
vecin al pixelului (l, c) d acă se afla în vecin ătatea de tipul folosit a acestui a.

NW N NE
W * E
SW S SE

23
2.3.2.2 Aplicarea de m ăști a imaginilor

Aplicarea de măști este un concept de baza în procesarea imaginilor. O masca este un set
de poziții ale pixelilor și valori corespunzătoare acestora numite ponderi .

1 1 1
1 1 1
1 1 1

Măști care pot fi aplicate unei im agini

În figura de mai sus avem 3 măști care pot fi applicate unei imagini: primele două sunt
măști pătratice, prima cu ponderi egale, cea de -a două cu ponderi diferite, iar cea de -a treia
este o mască dreptunghiulară cu ponderi egale.
Pentru fiecare pixel din imaginea asupra căreia se aplică, masca se suprapune imaginii
cu originea deasupra pixelului r espective. Valorile fi ecărui pixel de sub mască se înmulțesc cu
ponderile corespunzătoare ale măștii. Rezultate se adună și această va fi valoarea pixelului
aflat pe aceeași poziție în imaginea rezultată ca și pixelul curent.
Fiecare mască are o origine care este, de obicei, una dintre pozițiile sale. Pentru măști
simetrice, în mod normal, originea este centrul sau, iar pentru măștile care nu sunt simetrice
originea poate fi oricare dintre pozițiile sale în funcție de scopul în care este fo losită.

1
1
1
1
1 1 2 1
2 4 2
1 2 1

24
Mai jos avem un exemplu de aplicare a unei m ăști asupra unei im agini î n tonuri de gri.

40 40 80 80 80
40 40 80 80 80
40 40 80 80 80
40 40 80 80 80
40 40 80 80 80
(a) (b)

640 800 1120 1280 1280
640 800 1120 1280 1280
640 800 1120 1280 1280
640 800 1120 1280 1280
640 800 1120 1280 1280
(c)

40 50 70 80 80
40 50 70 80 80
40 50 70 80 80
40 50 70 80 80
40 50 70 80 80
(d)

Măști care pot fi aplicate unei im agini

Pentru a păstra dimensiunile imaginii după aplicarea măștii, se vor adaugă 2 linii
virtuale, una sus și una jos și două coloane virtuale, una la stânga și uan la dreapta. Valorile
acestor pixeli virtuali vor fi initializate cu 0 sau cu o constanța oarecare , sau pot să copieze
valorile liniei, respective colanei celei mai apropiate. Pentru a normaliza, valoarea fiecărui
pixel obținută se va împărți la suma ponderilor măștii.

1 2 1
2 4 2
1 2 1

25
CAPITOLUL 3
ZGOMOT Î N IM AGINI
Zgomotul este un semnal aleator ce afectează informația conținută într -o imagine.
El poate fi definit că orice process care afectează imaginea și nu face parte din semnalul
inițial. Acesta poate fi p rodus de senzorul aparatului fot o digital sau al scanerului.
Zgomotul din imaginile digitale11 poate prov en din diverse surse. Un proces prin
care zgomotul poate să apară în imaginile digitale este procesul de achiziție al acestora, care
convertește semnalul optic într -un semnal electric și apoi într -unul digital. La fiecare pas al
acestui process fenomele natural pot cauza fluctuații și acestea adaugă o valoare aleatoare la
extragerea fiecărei valori a luminozității pentru un pixel dat.
Pixelii nu au toți aceeași sensibilitate la lumina. În cazul în care se fotografiază o
suprafață într -o singură culoare, nu va rezultă o imagine omigena, ci o structura pixelate, mai
mult sau mai puțîn evidență. Acesta este așa numitul zgomot static.
Temperatura poate influență de asemenea apariția zgomotului în imagini. Așa cum
procesele chim ice au loc mai rapid la temperaturi mai ridicate, pixelii senzorului devin mai
activi o dată cu creșterea temperaturii, producând sarcina electrică chiar și în absența luminii,
efect cunoscut că zgomot termic.
După modul în care afectează imaginea, zgomotul este de două feluri :
 Zgomot auditiv – având f ( x,y )imaginea inițială, n (x,y ) zgomotul ce afecte ază
imaginea și g (x,y ) im aginea modific ată, zgomotul auditiv se c aracterize ază prin
formul a:
g (x,y ) = f (x,y ) + n (x, y )

 Zgomot multiplic ativ – se caracterize ază prin formul a matematică:

g ( x, y ) = f (x, y ) * n (x, y )
unde f (x, y ), n (x, y ) , g ( x, y ) au aceleași semnific ații ca la zgomotul aditiv.
Zgomotul multiplic ativ po ate fi tr atat ca zgomot aditiv, prin log aritmarea ecuației
log (g ( x, y )) = log ( f (x, y ) * n (x, y ) ) = log ((f (x, y )) + log (n (x, y ))

11http://www.miv.ro/ro/documentatie/pi/PIlab06.pdf

26
3.1 Princip alele tipuri de zgomot
Zgomotul cu distribuție uniformă, zgomotul de tip „sare și piper” și zgomotul cu
distribuție gaussiana. Vom prezent a în continuare aceste tipuri de zgomot.

3.1.1 Zgomotul cu distribuț ie uniform ă
Zgomotul cu distribuție uniformă poate fi folosit pentru generarea celorlalte tipuri de
zgomot. Fiind un model de zgomot neutru, se folosește a desea la degradarea imaginilor ce
urmează a fi utilizate la testarea algoritmilor de restaurare.
Funcția de densitate de probabilitate a unei variabile aleatoare uniforme este :

Zgomotul cu distribuț ie uniform ă are valorile nivelelor de gri din domeniul [0,255], s au pe
domeniul [ a,b] ⊆ [0,255]

Imagine afectată de zgomot uniform

27
3.1.2 Zgomotul de tip ,,S are si piper’’
Se numeș te astfel deo arece are do ar 2 valori posibile:
– 0, de unde denumire a ,,piper’’,
– 255, de unde denumire a ,,sare’’. Acest tip de zgomot se m ai numește ș i zgomot
de tip impuls.
Cauzele apariției zgomotului de tip sare și piper12 pot fi: pierderi de biți pe canalul de
comunicare atunci când imaginea este transmisă, greșeli ale locațiilor de memorie sau
funcționare proastă a cel ulelor din senzorii camerei.
In cazul il care o imagine are mai mult de 10% din pixelii afectați de zgomot de tip
sare și piper, atunci zgomotul va domină imaginea. O imagine poate fi afectată doar de
zgomot de tip sare sau doar de zgomot de tip piper. Ave m mai jos un exemplu de imagine
afectată cu acest tip de zgomot:

Imagine cu 10% pixeli afectați de zgomot de tip s are și piper

12http://users.utcluj.ro/~rdanescu/PI -L10r.pdf

28
3.1.3 Zgomotul cu distribuț ie gaussiană
Zgomotul de tip g aussian13 este utiliz at pentru a model a procese n aturale care
produc zgomote, precum zgomotul electric din timpul procesului de achiziț ie. Pentru
model area zgomotului g aussian14 se utilize ază o distribuț ie gaussiană, a cărei funcț ie de
densit ate de prob abilitate este:
fgaussian = 1
√ 2πσ e− (𝑔−𝜇)
2𝜎

unde g este nivelul de gri, 𝜇 este medi a zgomotului ș i 𝜎 este devi ația standard a zgomotului.
Funcț ia de densit ate de prob abilitate de m ai sus arată astfel:

O im agine afectată de zgomotul g aussian va arata astfel:

Imagine afectată de zgomot g aussian

13https://www.sfu.ca/sonic -studio/handbook/Gaussian_Noise.html
14http://www.magikcode.com/?p=233

29

3.2 Determin area prezenței zgomotului î n im agini
Determin area prezenț ei zgomotului15 în imagini se re alizează cu ajutorul r aportului
semn al – zgomot (SNR = Signal to Noise R atio). Vom arata în continu are cum se c alcule ază
acesta.
Știm c ă zgomotul este aditiv:

g (x,y) = f (x, y) + n(x,y)

Dacă zgomotul are medi a 0 (⟨𝑛 (𝑖,𝑗 )⟩ = 0) ș i este dependent de semn al
(⟨𝑠(𝑖,𝑗)𝑛(𝑖,𝑗)⟩ = 0) atunci:

⟨𝑠(𝑖,𝑗)⟩ = ⟨𝑓 (𝑖,𝑗)⟩ = 𝜇
𝜎𝑓 2 = 𝜎𝑠 2 + 𝜎𝑛 2

Devi ația standard este afectată de zgomot, d ar nu ș i medi a imaginii.

Revenind l a SNR, avem formul a:

SNR = 𝜎𝑠
𝜎𝑛 = √𝜎𝑓2
𝜎𝑛2−1
Și în funcț ie de v aloaraea acestui a putem deduce:

 Dacă SNR > 20 atunci vizibilit atea zgomotului este m ai mic ă
 Dacă SNR ≈10 atunci o c antitate mic ă de zgomot este vizibil ă
 Dacă SNR ≈4 atunci zgomotul este cl ar vizibil
 Dacă SNR ≈2 atunci im aginea este afectată în mare măsură de zgomot
 Dacă SNR ≈1 atunci zgomotul a acaparat imaginea origin ală

Modul de c alcul este urm ătorul:

1. Dintr -o singur ă imagine
(a) Calculăm 𝜎f pe to ată imaginea

30
(b) Pentru o zon ă cu intensit ate uniform ă 𝜎s = 0 ș i se c alcule ază 𝜎f = 𝜎n
2. Din dou ă imagini successive ale acelei ași scene:
f (i,j) = s (i,j) + n (i,j )
g (i,j) = s(i,j) + m (i,j)

 m și n au aceeași funcț ie de densit ate de prob abilitate, deci au aceeași medie (0) ș i
dispersie
 m și n sunt independente de semn al (⟨𝑠 (𝑖,𝑗)𝑛 (𝑖,𝑗)⟩ = 0, ⟨𝑠 (𝑖,𝑗)𝑚 (𝑖,𝑗)⟩ = 0)
 f și g sunt necorel ate ⟨𝑓 (𝑖,𝑗)𝑔 (𝑖,𝑗)⟩ = 0. Corel ația norm alizată dintre f ș i g:

r = ⟨( 𝑓𝑔− ⟨𝑓⟩ ⟨ℎ⟩)⟩
[[⟨|𝑓− ⟨𝑓⟩ |⟩ ⟨| 𝑓− ⟨𝑓⟩ |⟩ ]

r = 𝜎𝑠2
𝜎𝑠 + 𝜎𝑛2 2

Deci SNR po ate fi scris:
SNR = √𝑟
1−𝑟

15http://users.utcluj.ro/~rdanescu/pi_c09.pdf

31
CAPITOLUL 4
FILTRE DIGIT ALE

Filtrarea imaginilor16 este un caz particular de îmbunătățire a imaginilor. În
procesarea imaginilor filtrele17 sunt de obicei folosite pentru a suprima fie frecven țele înalte
din imagine (de exemplu n etezirea imaginii), fie frecvenț ele joase din imagine (de exemplu
intensificarea imaginii sau detectarea contururilor în imagine). O imagine poate fi filtrate atât
în domeniul spa țial cât și în domeniul frecvenț ial.
Ne vom ocupa de filtrarea în domeniul spațial. O metodă de filtrare a im aginilor î n
domeniul spațial este convoluția. Convoluț ia presupune înmulțirea pixelilor din
vecinătatea fiecărui pixel cu un set de ponderi și apoi înlocuirea pixelului curent cu suma
acestor produse. Pentru a preveni modificarea luminozității generale a imaginii, ponderile
măștii sunt fie proiectate astfel încât s uma lor să fie unu, fie convoluț ia este urmată de o
normalizare, adică rezultatul va fi împărțit la suma ponderilor.
Așadar filtrul este generat prin furnizarea unui set de ponderi ce vor fi a plicate unei
vecinătăți a pixelului cu rent, vecinătate a cărei dimensiune va fi de asemenea furnizată. Cu
alte cuvinte, un filtru este generat prin furnizarea unei măști. Setul de ponderi poartă numele
de nucleu de convoluție. Un astfel de nucleu de convoluție, sau filtru, are de obicei forma unui
pătrat de dimensiune impară. Astfel, atunci când va fi aplicat, imaginea rezultată nu va suferi
o deplasare cu jumătate de pixel față de imaginea originală. Formă generală a unui filtru de
dimensiuni 3*3 este următoarea:
[𝑝1 𝑝2 𝑝3
𝑝4 𝑝5 𝑝6
𝑝7 𝑝8 𝑝9]

16http://etc.unitbv.ro/~csaba.kertesz/pds/curs/PI -curs03.pdf

17Filtrul este un sistem de circuite electrice, sonore, etc. cu care se selecteaza dintr -un complex de oscilatii cu frecvente
diferite, oscilatiile cu frecventele cuprinse între anumite limite. (Dictionarul Explicativ al Limbii Române, 1995). Filtrul este
un dispozitiv ce amortizeaza selectiv oscilatiile cu anumite frecvente ¸si nu afecteaza oscilatiile av ând alte frecvente.
(Webster Encyclopedic Unabridged Dictionary, 1995) Filtrul este un dispozitiv destinat favorizarii sau inhibarii trecerii
anumitor componente de frecventa a unui semnal electric. (Larousse, 1994

32
4.1 Filtr area liniară a imaginilor
Filtrarea liniară se realizează cu ajuto rul unor măști, cunoscute și sub denumirea de
ferestre de filtrare. Deplasarea acestei ferestre a condus la denumirea de ,,tehnică ferestrei
glisante’’.
Această masca este considerată nucleul de convoluție. Să reamint im cum se
realizează acest procedeu :
 Fereastra de filt arare se supr apune im aginii de filtr at astfel: origine a acestei a va
fi de asupra pixelului curent ș i pixelii im aginii origin ale ce vor p articip a la
operația de convoluț ie vor fi cei peste c are se afla fereastra.
 Se realizează suma produselor de tipul v aloarepixel * pondere filtru și rezult atul va
fi dup ă filtrare a pixelului curent

Filtrarea in formula se po ate scrie astfel:
g (m,n) = ∑ 𝑊𝑘1 𝑓 (𝑚−𝑘,𝑛−1) (𝑘,1)∈𝑊

unde f (i,j) este im aginea care urme ază a fi filtr ată, g(i,j) imaginea rezult ată în urm a filtrarii,
W este vecin ătatea pixelului determin ată de m asca de filtr are iar W k,l sunt ponderile m ăștii de
filtrare, sau coeficienț ii măștii de filtr are.
Filtrele lini are pot fi de dou ă tipuri:
– filtre de tip ,,trece -jos’’
– filtre de netezire
– filtre de tip ,,trece -sus’’
– filtre de accentu are.

4.1.1 Filtre de tip ,,trece -jos’’

Filtrele de tip ,,trece -jos’’18 (low-pass) sunt utilizate pentru netezire și filtrarea
zgomotului, iar frecventele care trec sunt doar cele joase. Aceste filtre au că efect medierea
valorilor pixelilor asupra cărora se aplică masca, iar efectul vizibil este cel de ,,blur’’.

18http://users.utcluj.ro/~tmarita/IPL/IPLab/PI -L9r.pdf

33
În general, informația pe care o conține o imagine este de joasă frecvența, motiv
pentru care acest filtru reduce puterea zgomotului. Efectul de blu poate fi considerat o
îmbunătățire a zonelor a căror i ntensitate este relativ constanța prin înlăturarea micilor
diferențe între pixelii aceleiași regiuni.
În cazul zonelor absolut uniforme, nu mai putem îmbunătății uniformitatea dar
această operație de filtrare trebuie să păstreze valoarea constanța a pixel ilor. Astfel, rezultă
condiția de normare a filtrelor de netezire: suma ponderilor măștii folosite pentru filtrare să
fie 1:
const anta = ∑ 𝑊𝑘,𝑙∗𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑎 ⇒ (𝑘,𝑙)∈𝑊 ∑ 𝑊𝑘,𝑙=1 (𝑘,𝑙)

Cele m ai import ante filtre de ne tezire sunt filtrul de med iere ș i filtrul g aussian.

Filtrul de mediere
Filtrul de mediere este cel mai simplu filtru de tip ,,trece -jos’’ și se caracterizează
prin faptul că are coeficientii măștii egali. Ținând cont de normalizare, un filtru de mediere de
dimensiuni N*N va avea coeficientii egali cu 1
𝑁∗𝑁.
Ideea filtrului de mediere este aceea de a înlocui fiecare pixel cu media aritmetică a
pixelilor din vecinătatea aleasă, inclusiv propria valoare. În mod normal se utilizează un filtru
de dimensiune 3*3, dar în cazul în care se dorește o netezire mai severă se utilizează un filtru
de dimensiuni mai mari, de exemplu 5*5. Un filtru de dimensiuni mai mici trebuie aplicat de
mai multe ori pentru a obține un rezultat similar, dar nu identic cu rezultatul obținut printr -o
singură tr ecere cu un filtru de dimensiuni mai mari .

Avem m ai jos filtrul de mediere de dimensiuni 3*3:
1
9 1
9 1
9
1
9 1
9 1
9
1
9 1
9 1
9

Filtrul de mediere de dimensiuni 3*3:

34

Măștile de filtrare nu se limitează la realizarea mediei aritmetice, el poate realiza și o medie
ponderată a pixelilor din vecinătate. Avem mai jos exemple de astfel de filtre:

A B C D

Măști de mediere ce re alizează o medie ponder ată

Astfel, orice masca poate ajunge la o formă pătrată și centrată prin bordare cu
puncte cărora le sunt asociate ponderi nule. În fiura de mai jos avem formă pătrată și centrată
a măștii din figura 4.2:

Form a pătrată și centr ată a măștii din fig.

Vom aplica în continu are filtrul de mediere de dimensiuni 3*3 asupra unor im agini afectate de
zgomot s are și piper, respectiv g aussin. În urm a filtrării am obț inut:

1
16 1
16 1
16
1
16 1
2 1
16
1
16 1
16 1
16 0 1
5 0
1
5 1
5 1
5
0 1
5 0 0 1
8 0
1
8 1
4 1
8
0 1
8 0 1
4 1
6
1
6 1
6
0 0 0
0 1
4 1
6
0 1
6 1
6

35

imaginea origin ală imaginea filtrată
Aplicarea filtrului de mediere asupra unei im agini afectate de zgomot s are și piper

imaginea afectată de zgomot g aussian imaginea filtrată
Aplicarea filtrului de mediere asupra unei im agini afectate de zgomot g aussian

36
Aplicarea filtrului de mediere asupra imaginii afectate de zgomot gaussian19 a
avut următor ul efect: zgomotul este mai puți n evident, însă imaginea a fost netezită. Aplicând
același filtru imaginii afectate de zgomot sare și piper a condus la distorsionarea mediei
pixelilor întrucât valoarea zgomotului de tip sare și piper este, în mare parte, diferită de
valoarea pixelilor din vecinătate. Imaginea rezultată nu reprezintă o îm bunătățire din punct de
vedere al eliminării zgomotului și in plus, imaginea este acum foarte neclară. Filtrul de
mediere are însă două dezavantaje:
 un singur pixel cu o valoare nesemnificativă pentru regiunea în care se află poate afecta
semnifi cativ valoarea mediei pentru toți pixelii din vecinătate
 atunci când vecinătatea filtrului intersectează un contur, filtrul va genera noi valori pentru
pixelii de pe contur conducând astfel la netezire, asta putând reprezenta o problema în cazul în
care se dorește că imaginea rezultată să aibă contururile bine definite.
Filtrele de mediere nu sunt utilizate întrucât acestea afectează și semnalul util pe
lângă zgomot.
Filtru Gaussian
• este circular simertic, muchiile și liniile în direcții diferite sunt tratate la fel;
• matricea nucleu se poate separa într -un produs de 2 vectori (orizontal și vertical) =>
aplicarea matricii filtru poate fi realizată prin aplicarea secvențială a unor matrici mai mici.

distribuț ia gauss1-D cu medi a 0 și distribuț ia 𝜎=1
19https://homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm

37

distribuț ia gauss 2 -D cu medi a (0,0) și ditribuț ia 𝜎=1
Distribuț ia gaussiana în cazurile 1 -dimension ală și 2-dimension ală

Filtrul pentru eliminarea zgomotului gaussian are dimensiunea în concordanță cu
deviația standard a zgomotului, de obicei alegându -se dimensiunea egală cu 6 , iar
acest filtru se construiește cu formul a:
G(x,y) = 1
√2𝜋𝜎𝑒 – ((x−x0)2+(y−t0)2)
2𝜎2

Unde (x 0,y0) este centrul acestui filtru.
Dacă dimensiunea filtrului este mare, vom avea N2 înmulțiri pentru fiecare pixel, unde
N este dimensiunea filtrului, iar această operație ar fi foarte costisitoare. Astfel, vom
utiliza proprietatea de separabilitate: G(x,y) = G(x) G(y)
Ceea ce implic ă înlocuire a nucleului bidimension al cu dou ă convoluț ii ce au nucleul
unidimension al:
Ifiltrata (x,y) = (G (x)G(y)) I sursa(x,y) = G(x) G(y)I sursa(x,y))
unde G(x), respectiv G(y) au for mulele:
G(x) = 1
√2𝜋𝜎𝑒 -(𝑥−𝑥0)2
2𝜎2
G(y) = 1
√2𝜋𝜎𝑒− (𝑦−𝑦0)2
2𝜎2

38
Folosind filtrul gaussian, prin alegerea unei dimensiuni potrivite pentru această
putem fi destul de siguri referitor la gama de frecvente ce vor rămâne în imagine după filtrare,
ceea ce nu putem spune despre folosirea filtrului de mediere.
Ceea ce privește filtrele de netezire, privind din perspectiva eliminării zgomotului, este
necesară utilizarea unui filtru de dimensiuni cât mai mari, pe când din perspectiva semnalului
util, este necesară utilizarea unui filtru de dimensiuni cât mai mici. Astfel, un compromis între
cele două va fi utilizat în practică.

4.1.2 Filtre de tip ,,trece -sus’’
Filtrele de tip ,,trece -sus’’ permit trecerea neatenuată a fr ecvenț elor înalte și
blochează sau atenuează trecerea frecventelor joase. Efectul acestui tip de filtre este
evidențierea zonelor cu variații bruște de intensitate, cum ar fi contururile sau frontierele,
îmbunătățind astfel detectabilitatea componentelor i maginii.
Filtrele utilizate pentru detectarea muchiilor trebuie să aibă următoarea proprietate:
rezultatul filtrării unei zone absolut uniforme trebuie să fie nul. Astfel notând cu valoarea
pixelilor din zona absolut continuă, din formulă filtarii liniare vom avea:
0= ∑ 𝑊 (𝑘,𝑙)∈𝑊 k,l* 𝜇 ⇒ ∑ 𝑊 (𝑘,𝑙)∈𝑊 k,l = 0
Detect area muchiilor se re alizează cu ajutorul L aplacianului im aginii L (x,y), 3 el
realizând a două deriv ate a imaginii prin formul a:
L (x,y) = 𝜕2𝐼
𝜕2𝑥2 + 𝜕2𝐼
𝜕2𝑦2
unde I (x,y) este im aginea asupra căreia se va aplica acest oper ator.

39
Deoarece imaginea este reprezentată printr -o mulțime de pixeli discreți va trebui să
găsim filtre de convoluție discrete care să aproximeze derivată a două a imaginii din formulă
Laplacianului. Cele mai utilizate măști 3*3 pentru această aproximare sunt :
-1 -1 -1
-1 8 -1
-1 -1 -1

A B

Filtre de accentu are
Filtrele de a ccentuare nu intră în categoria filtrelor de tip ,,trece -sus’’ dar folosește
acest tip de filtrare pentru realizarea accentuării. Prin accentuare se înțelege contrastarea
imaginii în scopul îmbunătățirii vizualizării componentelor din imagine de -a lungul
frontierelor. Acest lucru se realizează prin modificarea pixelilor aflați de -o parte și de cealaltă
a frontierei.
Filtrul de accentuare se implementează în felul următor :

Filtrul de accentu are

În concluzie, filtrele ,,trece -sus’’ pot fi utiliz ate atât individu al, pentru detect area
contururilor, c ât și utiliz ate pentru implement area filtrelor de accentu are.

0 -1 0
-1 4 -1
0 -1 0

40
4.2 Filtr area nelini ară a imaginilor
Se caracterizează prin faptul că valoarea unui pixel de după filtrare20 nu mai este o
combinație liniară a valorilor pixelilor din vecinătatea considerată. Acest tip de filtru a apărut
din nevoia de a depăși limitariile filtrelor liniare: atunci când zgomotul nu mai este aditiv sau
nu are o distribuție normală.
Imaginea va fi acoperită cu puncte negre și puncte albe, efect cunoscut sub numele
de zgomot sare și piper. Aceste valori, fiind fie mult mai mari, fie mult mai mici că valorile
pixelilor din zona afectată se numesc valori abera nte sau extrem e. Dacă unei astfel de
imagini i-ar fi aplicată o filtrare liniară, rezultatul va fi accentuarea zgomotului. În plus,
pixelii din jurul acestor valori vor fi și ele corupte de zgomot.
Un exemplu de astfel de filtre sunt filtrele de ordonare, care au la baza ideea
următoare: prin ordonarea valorilor pixelilor, valorile aberante vor apărea la capete, deci se va
putea efectua eliminarea acestora.

Filtrele de ordine
Filtrele de ordine intr ă în clasa operatorilor de vecin ătate, folosind o m asca pentru
filtrare și bazându-se pe tehnic a ferestrei glis ante. V alorile pixelilor din vecin ătate vor fi
ordon ați cresc ător. Poziț ia unui pixel î n această mulț ime ordon ată se numeste r ang.
Presupun ând că avem { x1, x2….xn} valorile pixelilor din vecin ătatea considerată, în urm a
ordon ării vom avea { x(1), x(2)….x(n)} cu propriet atea că
x(1) ≤ x(2) ≤ ….≤ x(n)
Astfel, ieș irea unui filtru de ordine de r ang k v a fi
rangk {x1, x2…xn} = x (k), k ∈ {1…n}
Contururile nu vor fi afectate de filtrele de ordine, i ar valoarea zonelor uniforme va
fi păstrată. Princip alele filtre de ordon are sunt filtrul medi an, filtrul de m axim ș i filtru de
minim.
20http://www.miv.ro/ro/documentatie/pi/PIlab07.pdf

41
Filtrul medi an
Filtrul median funcționează astfel: pentru fiecare pixel, el va extrage valoarea
mediană din mulțimea ordonată a pixelilor din vecinătate, această fiind nouă valoare a
pixelului curent. În cazul în care vecinătatea aleasă are un număr par de pixeli, acest filtru va
returna media celor două valori d in mijloc. Acest filtru se folosește în special pentru
eliminarea zgomotului de tip sare și piper.

Form a matematică a filtrului medi an este
median {x1,x2… xn} = {𝑥(𝑛+1
2
(𝑥(𝑛
2)+𝑥(𝑛
2+1))/2
Filtrul medi an are dou ă avantaje față de filtrul de mediere:
 o singur ă valoare nereprezent ativă pentru vecin ătatea în care se afla nu va fi afectată în
mod semnific ativ valoarea medi ană
 deoarece v aloarea medi ană este o v aloare existent ă în vecin ătatea în care se află, filtrul
medi an nu v a gener a valori nere aliste pentru zon a contururilor, de unde putem tr age
concluzi a că filtrul medi an face o tre abă mai bun ă ca filtrul de medi ere în păstrarea
muchiilor. Mai jos este un exemplu de im agine afectată de zgomotul s are și piper
asupra căreia a fost aplicat filtrul medi an.

imaginea origin ală imaginea cu zgomot imaginea filtrată
Aplicarea filtrului medi an

42
Filtrul de m axim
Filtrul de maxim funcționează astfel: pentru fiecare pixel, el va extrage valoarea
maximă din mulțimea ordonată a pixelilor din vecinătate, valoarea x (n), această fiind nouă
valoare a pixelului curent. Poate fi utilizat pentru eliminarea zgomotului de tip piper. Atunci
când se aplică unei imagini afectate de zgomot de tip sare și piper, zgomotul de tip piper va
fi eliminat, însă zgomotul de tip sare va fi amplificat.
In figur a de m ai jos se po ate urm ări efectul filtrul de m axim asupra unei im agini ce
a fost afectată de zgomot de tip s are și piper:

imaginea cu zgomot imaginea filtrată
Aplicarea filtrului de m axim

Filtrul de m axim m ai este cunoscut ș i sub denumire a de filtru de dil atare.

imaginea origin ală imaginea filtrată
Efectul de dil atare

43
Filtrul de minim
Pentru fiecare pixel, el va extrage valoarea minimă din mulțimea ordonată a
pixelilor din vecinătate, valoarea x (1), această fiind nouă valoare a pixelului curent. Poate fi
utilizat pentru eliminarea zgomotului de tip sare. Atunci când se aplică unei imagini afectate
de zgomot de tip sare și piper, zgomotul de tip sare va fi eliminat, însă zgomotul de tip piper
va fi amplificat.
Efectul filtrului de minim asupra unei imagini ce a fost afectata de zgomot de tip
sare și piper.

imaginea cu zgomot imaginea filtrată
Aplicarea filtrului de minim

Filtrul de minim (filtrul de ordine de ordin 1) ¸si filtrul de maxim (filtrul de ordine de ordin n)
sunt singurele filtre de ordine separabile

44
Filtrul de minim m ai este cunoscut ș i sub denumire a de filtru de erod are. Pentru a
vede a acest efect, vom aplica filtrul asupra unei im agini ne afectate de zgomot:

imaginea origin ală imaginea filtrată

45
Capitolul 5
Rest aurarea imaginilor
Restaurarea imaginilor21 se referă la reconstruirea unei imagini degradate sau la
realizarea unei estimări a acesteia. Procesul de restaurare poate fi privit ca procesul invers al
degradării imaginilor și se realizează presupunând că sunt cunoscute cauzele degradării.
Restaurarea imaginilor este folosită în domenii precum fotografie, astrono mie, imagini
medicale, domenii ș tiințifice . Să analizăm î n continu are dif erențele dintre î mbun ătățirea și
restaurarea imaginilor:
 îmbun ătățirea imaginilor este o oper ație subiectiv ă, utiliz atorul decide sub ce form ă
imaginea arată mai bine dec ât origin alul, pe c ând rest aurarea presupune un criteriu
obiectiv de c alitate
 îmbunătățirea imaginilor ple acă de la accentu area sau extr agerea unor c aracteristici ale
acestor a mai degr abă decât rest aurarea degradărilor
 problemele de rest aurare pot fi cu antific ate, spre deosebire de criteriile de îmbunătățire
ce pot fi descrise m ai greu sub o form a matematică
 operațiile tipice de î mbun ătățire a imaginilor sunt: conversi a nivelelor de gri,
conversi a histogr amei, netezire a zgomotului, evidenț ierea anumitor c aracteristici.
Un model al proceselor de degr adare, respectiv rest aurarea imaginilor po ate fi
următorul:

Un model al procesului de degr adare/ rest aurare a imaginilor unde g se po ate scrie:
g(x,y) = H [ f (x,y)] + n (x,y)

46
Filtrele de rest aurare trebuie construite î n așa fel încât f (x,y) să fie cât mai apropi ată
posibil de f (x,y ).
Degr adarea imaginilor po ate fi î mpărțită în dou ă categorii: blur are și zgomot .
Se consider ă modelul de degr adare prin blur are. D acă se cuno aște funcț ia de blur are
care a corupt im aginea, cea mai simpl ă și uș oara modalitate de rest aurare este filtr area
invers ă. Deo arece filtrul invers este un filtru de tip ,,trece -sus’’, filtr area invers ă tinde s ă nu
fie pre a efectiv ă în imaginile c are prezint ă zgomot deo arece acesta are frecvențe î nalte.
Să consider ăm o im agine blur ată caracteriz ată prin:
g(x,y) = f (x,y) * b(x,y)
Unde f este im aginea origin ală, b este un tip de filtru ,,trece -jos’’ ș i g este im aginea
blurată. Astfel pentru a reveni l a imaginea inițială va trebui s ă realizăm convoluți a între
imaginea blurată și un filtru de tip ,,trece -sus’’ h:
f (x,y) = g(x,y) * h(x,y)
În acest fel ajungem la întrebarea cum îl găsim pe h? Dacă luăm transformată
Fourier discretă a lui b și o notăm cu B, în cazul ideal, pentru a obține filtrul ,,trece -sus’’ va
trebui să inversăm lementele lui B. Feoarece vor există elemente ale lui Begale cu zero sau
foarte apropiate că valoare de 0, prin inversarea acestora vom ajunge fie la valoarea infinit, fie
la valori foarte mari.
A două categorie de degradare este zgomotul. Restaurarea imaginilor afectate d e
zgomot se realizează cu ajutorul filtrelor de eliminare a zgomotului. În consecință restaurarea
imaginilor este o operație ce se realizează pentru a inversă efectele degradării, presupunând
cunoscut tipul degradării.

21http://andrei.clubcisco.ro/cursuri/4spg/8.tehnici.de.imbunatatire.si.restaurare.a.imaginilor.PDF

47
Capitolul 6
Descriere a aplicației

Analiza si restaurarea imaginilor este un domeniu nou dar indispensabil ce a ajuns să
fie foarte intalnit datorită importanț elor sale .
Acest lucru se î ntâmplă și datorită dezvoltării conti nue a tehnologiilor care asigură suportul
hardware și software necesar.
Aplicaț ie este destinată atât cunoscătorilor de tehnici de analiză și de prelucrare a
imaginilor cât și celor care doar ce au început studiul acestora.
Din ce în ce mai mulți utilizatori folosesc o aplicație pentru a edita fotografiile personale sau
diverse imagini, dar majoritatea acestor programe costă destul de mult.
Aplicația pe care am realizat -o este un produs ce poate fi utilizată pe o durată
îndelungată. De asemenea, nu este necesară o înregistrare sau o furnizare de date personale.
Folosind această aplicaț ie, utilizatorul are posibilitatea de a alege din următoarele
funcționalităț i:
 Să aplice asupra imaginilor operații de îmbunătățire a contrastului.
 Transformarea unei imagini colore în imagine alb -negru
 Negativarea unei imagini
 Degradarea unei imagini folosind cele 3 tipuri princ ipale de zgomot: zgomot
gaussin

6.1. Tehnologii folosite

Aplicația a fost dezvoltată de la zero în limbajul de programare C#. Vom prezenta pe
scurt acest limbaj. C# este un limbaj de programare conceput de Microsoft la sfârșitul anilor
90. A fost conceput că un concurent pentru limbajul Java. Ca și acesta, C# este un derivat al
limbajului de programare C++
 Este proiectat și direcționat în mod specific pentru utilizarea cu Microsoft .NET
Framework (o bogată platforma pentru dezvoltarea ,implementarea și executarea aplicațiilor
distribuite).

48
 Este un limbaj bazat pe metodologia modernă de proiectare orientată spre obiect și
atunci când a fost proiectată, Microsoft a învățat din experiență tuturor celorlalte limbaje
similare care au fost în jur, de vreme ce principiile orientate spre obiecte au ajuns la
proeminentă ac um 20 de ani.
În C#, am lucrat cu imagini în format "JPeg/bitmap". Vom prezența pe scurt acest
format. Imaginile grace ce sunt procesate de un computer se împart în două categorii:
Siere bitmap sau vectori gra_ci. ^În analiză imaginilor se folosesc imaginile bitmap.
Imaginile bitmap sunt o colecție de biți care formează o imagine, traducerea termenului
"bitmap" fiind hart a/plan de biți. Imaginea este reprezentată ca o matrice de puncte
individuale, numite pixeli, ce au propria culoare descrisă printr -un bit.
Imaginile bitmap pot conține orice număr de culori ș i pot fi împărțite în 4 ca tegorii:
Imagini "Line -Art" – sunt imagini care conțin doar două culori, în general alb ș i negru

Exemplu de imagine Line -Art
Imagini în tonuri de gri – conțin diferite nuanț e de gri, inclusiv culorile alb ș i negru

Exemplu de imagine î n tonuri de gri

49
6.2 Utilizarea aplicatiei

Aplicatia pe care o detin are design simplu, us or de utilizat, tehnicile de imbunat atire si
de analiza si restaurare a imaginilor .

Interfata aplicatiei

Pentru aceasta aplicatie am folosit Form de la C# adaugand butoane pentru diverse comenzi.
Meniul este imp artit astfel:

Butonul File contine:

– Open
– Save as (BMP, JPEG,PNG)
– Exit

50

Butonul Undo: Putem sa ne intoarcem la ultima modificare.

Butonul Filters ne ajuta sa pronuntam sa expunem poza.
– Efectul Sepia
– Black and White (retro foto)
– Negative

Butonul Help contine versiunea aplicatiei:

51

Butonul de Britghtness este un atribut al percepției vizuale în care o sursă pare a fi strălucirea
sau reflectarea luminii . Acesta este un atribut proprietate sub iectivă a unui obiect care este
observat și unul dintre parametrii aspectului de culoare al modelelor de aspect color . [31]

Brightness Volum :0

52

Brightness Volum :155

Butonul de Contrast este diferența dintre înnegrirea maximă și cea minimă care se pot vedea
într-o imagine fotografică. În percepția vizuală a lumii reale, contrastul este determinat de
diferența dintre culoarea și luminozitatea unui obiect și alte obiecte din interiorul
aceluiași câmp vizual .[32]

Contrast Volum: 0

53

Brightness Volum:139

Aplicat ia pe care dezvoltat -o este un instrument util at at pentru utilizatori i care incep
studierea prelucr arii s i analizei imaginilor, c at si pasionatilor ai acestui domeniu.
Astfel, ac easta aplicat ie va face mai us oara munca fotografiilor si utilizatorlir de arta virtuala

54
6.3 Proiectarea aplicatiei

Aplicatia a fost create in programul C# unde am folosit diverse metode si clase pentru
a putea creea aceasta aplicatie. Editorul de imagine contine un “Window – Form” cu diverse
butoane pentru a usura munca editorului.

In aceata aplicatie am folosit o singura clasa (public partial class Form1 : Form ) in care am
incadrat diverse metode de aplicatie pentru filter ,butoane si alte lemente ce tin de editor.

public partial class Form1 : Form
{

Image file;
Boolean opened = false;
Bitmap originalImage = null;
float contrast = 0;

public Form1()
{
InitializeComponent();

trackBar1.Enabled = false;
}

void openImage()
{
DialogResult dr = openFileDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
file = Image.FromFile(openFileDialog1.FileName);
pictureBox1.Image = file;
opened = true;

originalImage = pictureBox1.Image as Bitmap;

trackBar1.Enabled = true;
}
}

55
Pentru a putea crea o aplicatie in C# avem nevoie de librari :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.IO;

Cele m ai importante pentru un tool de photo editor sunt:
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.IO;

In sectiunea filters avem diverse butoane cu diverse functi dar sa vedem ce metode am folosit
pentru aceste filtre.

Pentru f unctia Sepia22 am folosit o metoda
new float[]{.393f, .349f, .272f, 0, 0},
new float[]{.769f, .686f, .534f, 0, 0},
new float[]{.189f, .168f, .131f, 0, 0},
new float[]{0, 0, 0, 1, 0},
new float[]{0, 0, 0, 0, 1},

Pentru functia Black and White23 am folosit o metoda
new float[] {-1, 0, 0, 0, 0},
new float[] {0, -1, 0, 0, 0},
new float[] {0, 0, -1, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {1, 1, 1, 0, 1}

Pentru functia Negative24 am folosit o metoda
new float[] { 0.299f, 0.299f, 0.299f, 0, 0 },
new float[] { 0.587f, 0.587f, 0.587f, 0, 0 },
new float[] { 0.114f, 0.114f, 0.114f, 0, 0 },
new float[] { 0, 0, 0, 1, 0 },
new float[] { 0, 0, 0, 0, 1 },

22https://stackoverflow.com/questions/19542174/changing -images -in-the-picturebox -to-sepia?noredirect=1&lq=1
23https://stackoverflow.com/questions/541331/effective -way-of-making -negative -of-image -without -external -dlls
24https://stackoverflow.com/questions/305 3889/how -to-convert -32-bit-rgba-image -to-grayscale -preserving -alpha/3054131

56
Codul din spatele butonului Sepia :
{
if (!opened)
{
MessageBox.Show( "Open an Image then apply changes" );
}
else
{
Image img = pictureBox1.Image;
ImageAttributes ia = new ImageAttributes();
Bitmap bmpInverted = new Bitmap(img.Width, img.Height);
ColorMatrix cmPicture = new ColorMatrix( new float[][]
{
new float[]{.393f, .349f, .272f, 0, 0},
new float[]{.769f, .686f, .534f, 0, 0},
new float[]{.189f, .168f, .131f, 0, 0},
new float[]{0, 0, 0, 1, 0},
new float[]{0, 0, 0, 0, 1},
});
ia.SetColorMatrix(cmPicture);
Graphics g = Graphics.FromImage(bmpInverted);

g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height), 0, 0,
img.Width, img.Height, GraphicsUnit.Pixel, ia);
g.Dispose();
pictureBox1.Image = bmpInverted;
}
}

Codul din spatele butonului Black and White:
{
if (!opened)
{
MessageBox.Show( "Open an Image then apply changes" );
}
else
{
Image img = pictureBox1.Image;
ImageAttributes ia = new ImageAttributes();
Bitmap bmpInverted = new Bitmap(img.Width, img.Height);
ColorMatrix cmPicture = new ColorMatrix( new float[][]
{
new float[] {-1, 0, 0, 0, 0},
new float[] {0, -1, 0, 0, 0},
new float[] {0, 0, -1, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {1, 1, 1, 0, 1}
});
ia.SetColorMatrix(cmPicture);
Graphics g = Graphics.F romImage(bmpInverted);

g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height), 0, 0,
img.Width, img.Height, GraphicsUnit.Pixel, ia);
g.Dispose();
pictureBox1.Image = bmpInverted;
}
}
25https://stackoverflow.com/questions/541331/effective -way-of-making -negative -of-image -without -external -dlls

57

Codul din spatele butonului Negative25:
{
if (!opened)
{
MessageBox.Show( "Open an Image then apply changes" );
}
else
{
Image img = pictureBox1.Image;
ImageAttributes ia = new ImageAttributes();
Bitmap bmpInverted = new Bitmap(img.Width, img.Height);
ColorMatrix cmPicture = new ColorMatrix( new float[][]
{
new float[] { 0.299f, 0.299f, 0.299f, 0, 0 },
new float[] { 0.587f, 0.587f, 0.587f, 0, 0 },
new float[] { 0.114f, 0.114f, 0.114f, 0, 0 },
new float[] { 0, 0, 0, 1, 0 },
new float[] { 0, 0, 0, 0, 1 },
});
ia.SetColorMatrix(cmPicture);
Graphics g = Graphics.FromImage(b mpInverted);

g.DrawImage(img, new Rectangle(0, 0, img.Width, img.Height), 0, 0,
img.Width, img.Height, GraphicsUnit.Pixel, ia);
g.Dispose();
pictureBox1.Image = bmpInverted;
}
}

Butonul de Brightness este putin mai special deoarece trebuie sa filtram si sa calculam fiecare
miscare ( float FinalValue = Value / 255.0f;)

private void trackBar1_Scroll( object sender, EventArgs e)
{
label2.Text = trackBar1.Value.ToString();

pictureBox1.Image = AdjustBrightness(trackBar1.Value);
}

public Bitmap AdjustBrightness( int Value)
{
float FinalValue = Value / 255.0f;

Bitmap NewBitmap = new Bitmap(originalImage.Width, originalImage.Height);

Graphics NewGraphics = Graphics.FromImage(NewBitmap);

float[][] FloatColorMatrix =
{
new float[] {1.0f, 0, 0, 0, 0},
new float[] {0, 1.0f, 0, 0, 0},
new float[] {0, 0, 1.0f, 0, 0},
new float[] {0, 0, 0, 1.0f, 0},

58
new float[] {FinalValue, FinalValue, FinalValue, 0.0f, 1.0f}
};

ColorMatrix NewColorMatrix = new ColorMatrix(FloatColorMatrix);

ImageAttributes Attributes = new ImageAttributes();

Attributes.SetColorMatrix(NewColorMatrix);

NewGraphics.DrawImage(originalImage, new Rectangle(0, 0,
originalImage.Width, originalImage.Height), 0, 0, originalImage.Width,
originalImage.Height, GraphicsUnit.Pixel, Attributes);

Attributes.Dispose();
NewGraphics.Dispose();

return NewBitmap;
}

Metoda utilizata in Brightness function este:

new float[] {1.0f, 0, 0, 0, 0},
new float[] {0, 1.0f, 0, 0, 0},
new float[] {0, 0, 1.0f, 0, 0},
new float[] {0, 0, 0, 1.0f, 0},
new float[] {FinalValue, FinalValue, FinalValue, 0.0f, 1.0f}

Butonul de Contrast pare a fi asemanator cu cel de la Brightness dar metoda de lucru este
diferita.

private void trackBar2_Scroll( object sender, EventArgs e)
{
label3.Text = trackBar2.Value.ToString();

contrast = 0.04f * trackBar2.Value;

Bitmap bm = new Bitmap(originalImage.Width, originalImage.Height);
Graphics g = Graphics.FromImage(bm);
ImageAttributes ia = new ImageAttributes();

ColorMatrix cm = new ColorMatrix( new float[][]
{
new float[] {contrast, 0f, 0f, 0f, 0f},
new float[] {0f, contrast, 0f, 0f, 0f},
new float[] {0f, 0f, contrast, 0f, 0f},
new float[] {0f, 0f, 0f, 1f, 0f},
new float[] {0.001f, 0.001f, 0.001f, 0f,1f }

});
ia.SetColorMatrix(cm);
g.DrawImage(originalImage, new Rectangle(0, 0, originalImage.Width,
originalImage.Height), 0, 0, originalImage.Width, originalImage.Height,
GraphicsUnit.Pixel, ia);
g.Dispose();
ia.Dispose();

59
pictureBox1.Image = bm;
Metoda utilizata in Contrast function este:

new float[] {contrast, 0f, 0f, 0f, 0f},
new float[] {0f, contrast, 0f, 0f, 0f},
new float[] {0f, 0f, contrast, 0f, 0f},
new float[] {0f, 0f, 0f, 1f, 0f},
new float[] {0.001f, 0.001f, 0.001f, 0f,1f }

In fiecare functie avem constructorii car ne ajuta sa imbinam elementele in acest cod.

Butonul Open este un element important in aplicatie deoarce fara el nu am putea aplica o noua
imagine:
Acesta contine:
private void pictureBox1_Click( object sender, EventArgs e)
{
openImage();
}
void openImage()
{
DialogResult dr = openFileDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
file = Image.FromFile(openFileDialog1.FileName);
pictureB ox1.Image = file;
opened = true;

originalImage = pictureBox1.Image as Bitmap;

trackBar1.Enabled = true;
}
}

Butonul Save as este un alt element important in aplicatie deoarce cu ajutorul lui putem salva
fisierele modificate:
Acesta contine:
private void saveAsToolStripMenuItem_Click( object sender, EventArgs e)
{
saveImage();
}
void saveImage()
{
if (opened)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "Images |*.png;*.bmp;*.jpg;" ;
ImageFormat format = ImageFormat.Jpeg;
if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string ext = Path.GetExtension(sfd.FileName);
switch (ext)

60
{
case ".jpg":
format = ImageFormat.Jpeg;
break;

case ".bmp":
format = ImageFormat.Bmp;
break;
}
}
pictureBox1.Image.Save(sfd.FileName, format);

}

Ca orice alta apl icatie avem un buton de exit .
Acesta contine:
private void exitToolStripMenuItem_Click( object sender, EventArgs e)
{
Application.Exit();
}

61
Capitolul 7.
Concluzii

Dezvoltarea continua a tehnologiei a f acut din analiza s i restaurarea imaginilor un
domeniu modern pentru artisti si programtori. Exist a cursuri de preluc rarea imaginilor care se
predau in majoritatea facult atilor.
Aceast a aplicat ie nu se adreseaz a doar studentilor ci si profesorilor ce predau aceste
materii. Vor avea la dispozit ie un instrument ce ajuta la punerea in practica a algoritmilor de
imbunat atire si analiza a imaginilor, si nu numai.
Aplicat ia vine in ajutorul utilizatorilor cu o interfata us or de folosit si este dispo nibila
oricui intruc at nu este nevoie de logare pentru utilizare.
Lucrarea creata este un suport teoretic solid, care cuprinde atat notiuni despre imagini,
operatiile de imbunatatire a acestora, principalele tipuri de efecte si filtre utilizate in
restaurarea imaginilor, cat si notiunile matematice din spatele acestor concepte.

62
BIBLIOGRAFIA
I. Jerome, Lucas : The Salsa software, Universite Pierre et Marie Curie, Paris
II. Stockman, George, Shapiro, Linda : Computer vision, Computer Science and
Engineering University of Washington, 2001
III. Doran, Andrew,Wang, Cherry, Zhanq, Huipin : Inverse _ltering, Rice Univesity
IV. Fisher R., Perkins S., Walker A., Wolfart E. , Digital _lters, University of Edinburgh,
School of informatics, 2003
V. Fisher R., Perkins S., Walker A., Wolfart E. , Intensity Histogram, University of
Edinburgh, 2003
VI. Fisher R., Perkins S., Walker A., Wolfart E. , Mean Filter, University of Edinburgh,
School of informatics, 2003
VII. Stathaki, Tania , Digital image processing, Part 3: Image restoration, Imperial College
of Science Technology and Medicine, London, 2012
VIII. Ivanovici, Laurentiu – Mihail : Procesarea imaginilor: Indrumar de laborator , Editura
Universit atii "Transilvania" din Brasov, Brasov, 2006.
IX.

Similar Posts