Programul de studii: Matematica și Informatică Aplicată în Inginerie [628057]
UNIVERSITATEA POLITEHNICĂ DIN BUCUREȘTI
FACULTATEA DE ȘTIINȚE APLICATE
Programul de studii: Matematica și Informatică Aplicată în Inginerie
PROIECT DE DIPLOMĂ
CONDUCĂTOR ȘTINȚIFIIC, ABSOLVENT: [anonimizat] -Daniel
București
2019
UNIVERSITATEA POLITEHNICĂ DI N BUCUREȘTI
FACULTATEA DE ȘTIINȚE APLICATE
Programul de studii: Matematica și Informatică Aplicată în Inginerie
Aprobat Decan,
PETRESCU EMIL
PROIECT DE DIPLOMĂ
TEHNICI ȘI METODE DE INPAINTING Î N RESTAURAREA IMAGINI LOR
DIGITALE
CONDUCĂTOR ȘTINȚIFIIC, ABSOLVENT: [anonimizat] -Daniel
București
2019
3
Cuprins
Introducere ………………………….. ………………………….. ………………………….. ………………………….. ………… 4
Capitolul 1. Tehnici de inpainting ………………………….. ………………………….. ………………………….. ……. 7
Capitolul 2 Metode de inpainting și algoritmi ………………………….. ………………………….. ……………… 10
2.1 Metoda bazată pe Variații cu Ecuații cu Derivate Parțiale ………………………….. ………………. 10
2.2 Procesul de inpainting bazat pe modetul Variației Totale ………………………….. ……………….. 11
2.3 Metoda rară ………………………….. ………………………….. ………………………….. …………………………. 14
2.4 Metoda bazată pe Curbura Condusă de Difuzie (CCD) ………………………….. …………………… 15
2.5 Metoda lui Bertalmio ………………………….. ………………………….. ………………………….. ……………. 16
2.6 Algoritmul lui Criminisi ………………………….. ………………………….. ………………………….. ……….. 20
2.6.1 Metoda clasică ………………………….. ………………………….. ………………………….. ……………….. 20
2.6.2 Metoda actualizată ………………………….. ………………………….. ………………………….. …………. 24
2.7 Algoritmul lui Efros și Leung ………………………….. ………………………….. ………………………….. … 26
2.7.1 Metoda clasică ………………………….. ………………………….. ………………………….. ……………….. 26
2.7.2 Metoda actualizată ………………………….. ………………………….. ………………………….. …………. 28
Capitolul 3. Comparația între algoritmii selectați ………………………….. ………………………….. ……….. 31
Capitolul 4. Aplicații ………………………….. ………………………….. ………………………….. ……………………… 33
4.1 Selectarea imaginii și configurarea măștii ………………………….. ………………………….. ………….. 33
4.2 Descrierea programului ………………………….. ………………………….. ………………………….. ………… 34
4.3 Afișarea imaginii restaurate ………………………….. ………………………….. ………………………….. ….. 38
Conlcluzii ………………………….. ………………………….. ………………………….. ………………………….. …………. 39
Glosari de termeni ………………………….. ………………………….. ………………………….. …………………………. 40
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. ……….. 41
Anexe ………………………….. ………………………….. ………………………….. ………………………….. ……………….. 42
4
Introducere
Tema proiectului de diplomă este denumită ” Tehnici și metode de ”Inpainting” în
restaurarea imaginilor digitale” și reprezintă rezultatul curiozității mele în legătură cu acest
subiect .
Motivul alegerii acestei teme derivă din dorința de documentare în legătură cu acest
subiect deoarece este unul extrem de important, dezvoltat de foarte mulți oameni din acest
domeniu. Lucrarea de față își propune să prezinte principalele aspecte teoretice și practice în
legătură cu procesul de inpainting al imaginilor digitale. Conținutul lucrării prezintă procesul
de inpainting, principalele tehnici și metode folosite în acest scop, comparațiile înte metodele
și algoritmii prezenta ți, aplicația realizată și concluziile finale.
În acest scop, primul capitolul abordează principalele tehnici și metode care au fost
elaborate pentru crearea procesului de restaurare al imaginilor digitale și domeniile de folosire
ale aces tora.
În capitolul al II -lea sunt prezentate aspectele algoritmilor procesului de inpainting ,
algoritmii îmbunătățiți al unora dintre aceștia și rezultatele în urma implementării lor.
Capitolul al III -lea intitulat ”Comparații între algoritmi” reprezintă abordar ea
asemănărilor și deosebirilor dintre algoritmii prezentați în capitolul al II -lea. În acest capitol se
vor aborda principalele comparații între algoritmi atât din punct de vedere tehnic cât și practic.
În capitolul al IV -lea este prezentată partea practică a acestei lucrări. Aceasta constă în
implementarea unuia dintre algoritmii prezentați și ilustrarea rezultatelor algoritmului după
executarea acestuia.
În ultimul capitol se abordează problematica referitoare la concluziile finale ale lucrării
analizându -se conceptele teoretice și cele practice și rezultatele aplicației. .
Nașterea conceptului de „inpainting”
Încă din timpul Renașterii au fost folosit e tehnici pentru restaurarea operelor de artă, dorindu –
se ca acestea s ă fie de o calitate excelentă , tehnicile fiind însă costisitoare din punct de vedere
al timpului de lucru . Scopul era de a reconstrui porțiunile de imagine lipsă sau deteriorate cu
scopul de a le face mai clare și pentru ca picturile să -și redobândescă proprietățile inițiale .
Inpainting -ul a mai fost folosit și pentru refacearea textelor vechi, cum ar fi isvoarele istorice.
5
În prezent, t ehnicile și metodele digitale de inpainting au diminuat durata procesului de
restaurare și încearcă să re facă imaginile digitale într -un mod similar cu cel al operelor de artă
(Bertalmio, et al. 2000, VLAŠÁNEK 2014) .
În lumea digitală, inpainting (cunoscută și sub numele de interpolarea imaginii sau
interpolare video) se referă la aplicarea unor algoritmi sofisticați care înlocuiesc părțile pierdute
ale imaginii (în special regiuni mici sau pentru a elimina defectele mi ci). Tehnicile digitale
încep sa fie o modalitate larg răspândită în in painting, iar intstrumentele software permit un
proces mai sofisticat. ”Inpainting -ul” a fost introdus prima dată în anul 2000 de către Bertalmio.
Această tehnică constă în umplerea porțiunilor pierdute sau deterioarate astfel încât să nu fie
observată de către o persoană care nu cunoaște starea originala a acelei imagini (Bertalmio, et
al. 2000, VLAŠÁNEK 2014) .
De-a lungul timpului, restaur atorii profe sioniști au reușit să pună bazele multor metode
de restaurare a imaginilor digitale , fiecare metodă fiind diferită de cealaltă. De exemplu, există
metode care reușesc să elimine un obiect dintr -o imagine (Criminisi, et al. 2004) , să restaureze
pozele degradate (Zhu, et al. 2006) , să completeze regiunile lipsă (Bertalmio, et al. 2000) , să
elimine efectul ”red -eye” (Yoo and Park 2009) , să reducă zgomotul imaginilor, să reducă
nivelul de e stompare, să rezolve compresia , să ajusteze zoom -ul imaginilor . În realizarea tuturor
tehnicilor și a metodelor pentru inpainting, experții în acest domeniu au utilizat anumite
imagini, de care putem spune că sunt ” celebre ”. Imaginile cele mai des folosite sunt
următoarele:
Figura 0 1 Imaginile ”celebre” ale experților
În această lucrare se va intruduce , cu ajutorul algoritmilor deja existenți, un algoritm
îmbunătățit pentru inpainting -ul imaginilor digitale cu scopul de a replica tehnicile de bază
utilizate de restauratorii profesioniști. Ceea ce se va aborda în această lucrare este restaur area
imaginilor prin:
• umplerea regiunil or incomplete din imagine ;
• eliminarea obiectel or nedorite din imagine ;
• îmbunătățirea textur ii și a structur ii imaginii .
6
Cei cinci algoritmi utilizați voi care se vor folosi pentru a duce la capăt scopul lucrării
sunt următorii :
• Algoritmul metodei bazate pe Ecuații diferențiale;
• Algoritmul metodei bazate pe Variația Totală;
• Algoritmul metodei bazate pe Curbura Condusă de liniile Izofote (CCD) ;
• Algoritmul lui Bertalmio ;
• Algoritmul lui Criminisi ;
• Algoritmul lui Efros și Leung .
Pentru implementarea algoritmilor a fost utiliza t un cal culator cu sistemul de operare
Windows 10 pe 64 biți cu următoarele specificații:
• 8GB RAM ;
• Intel Pentium G3258 3.2 Ghz (2CPUs) .
7
Capitolul 1. Tehnici de inpainting
Principalele tehnici ale procesului de inpainting sunt următoarele:
• Tehnici bazate pe sinteza de textură;
• Tehnici bazate pe exemple și pe căutări;
• Tehnici semi -automate rapide;
• Tehnici bazate pe Ecuații cu Derivate Parțiale
• Tehnici hibride.
Tehnici bazate pe sinteza de textură
Tehnicile bazate pe sinteza de textură cuprind un conținut bogat și sunt cunoscute drept
modele repetitive bidimensionale formate cu ajutorul Câmpului Aleator al lui Markov (Cheng
and Li 2018) și al Câmpului lui Gibbs (Gong, et al. 2019) . Această tehnică are ca scop umplerea
spațiilor și copierea pixelilor vecini. Ea presupune îndepărtarea defectelor din imagine, cum ar
fi zgârieturile și petele, precum și eliminarea obiectelor deranjante, cum ar fi subtitrările și logo-
urile prezente pe suprafața imaginii (Bertalmio, et al. 2000, Criminisi, et al. 2004) . Diferența
principală între toate metodele bazate pe sinteza de textură este aceea că acestea mențin
continuitatea dintre spațiul pixelului și pixelul original al imaginii. Această metodă
funcționează doar pentru un anumit număr de imagini selectate . Cea mai popular ă tehnică de
sinteză este reprezentată de tehnica ”copiază -lipește” care ” mărește ” textura regiunii ce trebuie
umplut ă, aceasta fiind bazată pe informația imaginii din regiunea sursă. În anul 200 4, metoda
lui Criminisi aduce acestei tehnici un success foarte mare (Criminisi, et al. 2004) . Această
metodă funcționează doar pentru un anumit număr de imagini selectate.
Yamuchi prezintă un algoritm care generează structura imaginii î n diferite condiții de
luminozitate (Yamauchi, Haber and Seidel n.d.) . Toate metodele bazate pe textură s unt diferite
din punct de vedere al procesului de ge nerare al texturii cu diferite culori, intensitate și gradient
(Zhu, et al. 2006, Patel, Prajapati and Mishra 2012, Vreja and Brad 2014) .
Tehnici bazate pe exempl e
Tehnicile bazate pe exemplare utilizează inpainting -ul bazat pe liniile izofote și pe
sinteza de textură propusă de Criminisi. În acest algoritm, prioritatea bazată pe mecanism este
folosită pentru a determinea ordinea de umplere a regiunilor. Această metodă funcționează
foarte bine și atunci când numărul de imagini este foarte mare. Deza vantajul acestei metode
constă în controlul structurii, curbarea acesteia nefiind controlată corespunzător , aceasta fiind
influențată de selecția porțiunilor din imagine. (Vreja and Brad 2014, Bertalmio, et al. 2000) .
8
Tehnicile bazate pe exempl e au introdus multe variante de optimizare a metodelor
bazate pe bucățile de imagine :
• Metrici le de distanță pentru găsirea celor mai bune p orțiuni de imagine de
potrivire ;
• Căutare a rapidă a celor mai bune potriviri de porțiuni ;
• Rafinare a la mai multe trepte ;
• Asamblarea porțiunilor de imagine prin amestecare și matlasare ;
• Coerenț a spațială globală prin constrângerea căutării sau prin optimizarea
căutării globale .
În cazul reconstrucției structurii, cei care au venit cu o metodă inovativă a u fost Efros și
Leung care restaurează structura imaginii pixel cu pixel (Efros and Leung 1999) . Tot Efros, dar
în colaborare cu Freeman, elaborează o metodă de reconstrucție a structurii care utilizează
blocuri de pixeli (Efros and Freeman 2001) . Această îmbunătățire a metodei precedente aduce
un plus, acela că metoda nouă metodă are un timp redus de e xecuție al restaurării indiferent de
calitatea imaginii . Majoritatea teh nicilor bazate pe sinteza pixelilor utilizează metoda de
modelare a texturii a Câmpurilor Aleatoare ale lui Markov ” (Vreja and Brad 2014, Patel,
Prajapati and Mishra 2012, Efros and Leung 1999) .
Tehnici rapide semi -automate
Tehnica rapidă semi -automată poate fi descrisă prin metoda propus ă de Jian. Această
metoda, numită „Inpainting with Structure propagation” prezintă doi pași. Un algoritm al
tehnicii rapide de restaurare este propus de Oliviera , care face restaurarea imaginilor folosind o
convoluție iterativ ă de restaurare a regiunii (Patel, Prajapati and Mishra 2012) .
Tehnici bazate pe Ecuații cu Derivate Parțiale
Pentru structurarea proceselor de inpainting al imaginilor, o primă teh nică este cea
bazată pe Ecuațiile cu Derivate Parțiale (EDP) (Gong, et al. 2019) . Ideea principală a acestei
tehnici este de a se utiliza pe deplin informațiile de pe limitele din jurul zonei deteriorate și de
a separa informația în zona reparată cu mecanismul de propagare pentru a se obț ine rezultate
cât mai bune. De fapt, tehnicile bazate pe EDP utiliazeză ecuația termală de difuzie pentru
propagarea informațiilor sub forma unor zone de porțiuni de imagine în jurul zonei reparate.
Ecuația transformă procesul de inpainting al imaginii înt r-o serie de ecuații cu derivate
parțiale.
9
Tehnicile bazate pe EDP folosesc abordarea metodei lui Bertalmio. Ele utilizează
conceptul de linii izofote și de process de difuzie. Problema principală a acestei metode este că
din cauza efectului de încețo șere, procesul de replicare nu funcționează bine pentru imaginile
cu textură foarte mare (Bertalmio, et al. 2000, Vreja and Brad 2014, Patel, Prajapati and Mishra
2012) .
Tehnici hibride
Tehnicile de restaurare hibride combină tehnicile bazate pe EDP cu tehinicile bazate pe
sinteza de structură pentru a umple spațiile. Scopul principal este de a descompune imaginea
într-o regi une a structur ii și o regiune a texturii . Apoi, regiunile corespunzătoare vor fi umplute
cu o nouă structură cu ajutorul algoritmi lor de propagare a muchiilor. Dezavantajul acestei
tehnici este că timpul de calcul este foarte mare pentru umplerea spațiilor mari (Patel, Prajapati
and Mishra 2012) .
Tehnici rare
Metoda bazată pe raritate se consideră a fi o metodă care redefinește și rafinează
semnal ul bazat pe domeniul de transformare. În procesul tradițional al semnalului,
reprezentarea metodei rare s-a dovedit a avea o performanț ă excelentă în descrierea și
compresare a semnalelor de dimensiunui mari. În reprezentarea pe calculator, reprezentarea
metodelor rare s -a dezvoltat ca fiind o nouă manieră a procesului de inpainting al imaginilor
digitale. Esența acestei abordări este de a reprezenta imaginea ca o combinație ra ră a unor seturi
de transformări supracompletate (Wavelet, Contourlet) și apoi, pixelii ce trebuiesc completați
sunt interferați prin îmbunătățirea adaptivă a reprezentării metodei rare (Gong, et al. 2019) .
Ecuația care stă la baza acestei metode este următoarea:
𝑥=𝐷𝛼 𝑠𝑢𝑏𝑗𝑒𝑐𝑡 𝑡𝑜 ‖𝛼‖00≤𝐿, (1)
unde vectorul x denotă semnalul original, 𝑥∈ 𝑅𝑛, D reprezintă dicționarul 𝐷∈𝑅𝑛×𝑘, care
conține k coloane și fiecare coloană poartă numele de atom. Pentru fiecare reprezentare,
𝑘>𝑛. Vectorul 𝛼 reprezintă combinația liniară a atomilor în D.
10
Capitolul 2 Metode de inpainting și a lgoritmi
În acest capitol se prezintă aspectele teoretice ale metode lor clasice de inpainting
precum și algoritmii folosiți pentru restaurarea și îmbunătățirea imaginilor digitale. Metodele
care stau la baza tehnicilor de inpainting sunt următoarele:
1. Metoda bazată pe Ecuații cu Derivate Parțiale
2. Metoda bazată pe Variația Totală (VT)
3. Metoda rară
4. Metoda bazată pe Curbura Condusă de Difuzie
5. Metoda lui Bertalmio ,
6. Metoda lui Criminisi:
a. Metoda clasică,
b. Metoda îmbunătățită.
7. Metoda lui Efros și a lui Leung .
a. Metoda clasic ă
b. Metoda îmbunătățit ă
2.1 Metoda bazată pe Variații cu Ecuații cu Derivate Parțiale
Pentru aceasta metodă este adoptată un model de degradare:
𝐼0=𝐼+𝑁, (1)
unde 𝐼0 reprezintă imaginea observată, I este imaginea original ă (I={I(x)}, N este element
adițional ce conține zgomot ).
Pentru cele mai multe modele de inpainting, modelul de date este următorul:
𝐼0|𝛺∖𝐷=[𝐼+𝑁]𝛺∖𝐷, (2)
unde 𝛺 denotă întreaga regiune a imagini, D reprezintă zona de unde informația pierdută are
nevoie să fie împărțită în porțiuni, 𝛺∖𝐷 denotă zibaa în care nu se pierde informația, 𝐼0 este
porțiunea disponibilă pe , 𝛺∖𝐷 în timp ce I reprezintă zona țintă ce trebuie restaurată.
Datorită faptului că N se supune distribuției Gauss, funcția energiei E a modelului de
date poate fi definită prin media minimă a pătratului erorii:
𝐸[𝐼0|𝐼]=𝜆
2∫(𝐼−𝐼0)2𝑑𝑥𝛺∖𝐷. (3)
11
Modelul imaginii poate fi o bținut din datele imaginii prin filtrare, prin estimare
parametrică sau neparametrică . În abordarea variațională, problema de inpainting a imaginii a
fost transformată într -o problemă de optimizare constrânsă:
𝑚𝑖𝑛𝐸[𝐼]
(4)
𝐸[𝐼0|𝐼]≤𝜎2,
unde 𝐸[𝐼] este energia modelului imaginii anterioare, 𝜎2 indică variația Gaussiană cu zgomot
care poate fi estimat ă cu un estimator statistic. Folosind metoda de multiplicare Lagrangiană,
probmela constrângerii poate fi transformată în următoarea problemă neconstr ânsa:
𝑚𝑖𝑛𝐸[𝐼]+ 𝜆𝐸[𝐼0|𝐼]. (5)
În general, 𝜆 este folosit pentru a egala termenul de potrivire 𝐸[𝐼0|𝐼] și termenul de
regularizare 𝐸[𝐼]. Pentru termenul de regularizare 𝐸[𝐼], modelul ui anterior al imaginii îi este
adesea implementat o funcțională a energiei , precum norma Sobolev 𝐸[𝐼]=∫|𝛻𝐼|2𝑑𝑥𝛺,
modelul variational alu lui Rudin 𝐸[𝐼]=∫|𝛻𝐼|𝑑𝑥𝛺 și modelul Mumford -Shah
𝐸[𝐼|𝛤]=𝛾
2∫|𝛻𝐼|2𝑑𝑥+𝛽𝐻1(𝛤)𝛺∖𝛤, unde 𝐻1 reprezintă măsura 1-dimensonală a lui
Haussdorf și 𝛤 este limita setată de imagine.
2.2 Procesul de inpainting bazat pe modetul Variației Totale
Modelul Variației Totale poate extinde limitele imaginii și este foarte potrivit pentru
restaurarea imaginilor. Pentru acestea, a fost stabilit următorul model al Variației Totale:
𝑚𝑖𝑛|𝐽[𝐼]|=∫|𝛻𝐼|𝑑𝑥+𝜆
2∫|𝐼−𝐼0|2𝑑𝑥𝛺∖𝐷 𝛺, (6)
unde λ joacă rolul multiplicatorului Lagrangian. Ecuația Euler -Lagrange a energiei
funcționalei J poate fi obținută ca
−𝑑𝑖𝑣[𝛻𝐼|𝛻𝐼|⁄]+𝜆𝐷(𝑥)(𝐼−𝐼0)=0,
unde
𝜆𝐷(𝑥)=𝜆⋅1𝛺∖𝐷(𝑥)={ 𝜆 𝑥 ∈ 𝛺∖𝐷
0 𝑥∈ 𝐷. (7)
12
Astfel se poate observa faptul c ă valoarea minimă a rezolvării funcționalei este
echivalenta rezolvării ecuației c u derivate parțiale. În plus, se poate adăuga o variabilă de timp
t și apoi se dă ecuația infinitezimală:
𝜕𝐼
𝜕𝑡=𝑑𝑖𝑣[𝛻𝐼/ |𝛻𝐼|] − 𝜆𝐷 (𝑥)(𝐼−𝐼^0), (8)
iar cu schimbarea de variablilă a timpului t, atunci când 𝜕𝐼
𝜕𝑡→0, se obține valoarea minimă
acceptată I.
Din punct de vedere al calculului numeric, din moment ce |𝛻𝐼| este foarte mic sau
apropiat de valoarea 0 în zona netedă, astfet că, în cele două ecuații diferențiale de mai sus ,
pentru a evita ca numitorul sa fie 0, în general se înlocuiește
𝑑𝑖𝑣[𝛻𝐼/|𝛻𝐼|] (9)
cu
𝑑𝑖𝑣[𝛻𝐼/ |𝛻𝐼|𝜀], (10)
unde |𝛻𝐼|𝜀=√𝜀2+|𝛻𝐼|2, 𝜀 fiind un parametru mic pozitiv. Asfel, problema de optimizare
devine:
𝑚𝑖𝑛𝐽𝜀[𝐼]=∫|𝛻𝐼|𝜀𝑑𝑥+𝜆
2∫|𝐼−𝐼0| 𝑑𝑥𝛺∖𝐷 𝛺, (11)
unde 𝜀 poate fi considerat ca un prag.
Pentru modelul Variației Totale, puterea difuziei depinde doar de contrastul sau tăria
liniei izofote și este reflectată de coeficientrul de conducție 𝑣=1/|𝛻𝐼|, prin urmare,
intensitatea difuziei nu este dependentă de informația geometrică a liniei izofote. Cheia
implementării numerice a inpainting -ului Variației Totale este situat în aproximarea lui 𝛻|𝐼| și
a degradației Ecuațiilor cu Derivate Parțiale.
Fie 𝑃𝑒,𝑃𝑛,𝑃𝑤,𝑃𝑠 patru puncte mediene care nu sunt direct disponibile pe imaginea
digitală și fie 𝑃𝐸,𝑃𝑁,𝑃𝑊,𝑃𝑆 patru pi xeli adiacenți punctului O situat în originea din centrul
imaginii.
13
Figura 2.2 1 Reprezentarea punctelor mediene pe imagine
Asfel că |∇𝐼𝑃𝑒| poate fi aproximat de următoarea formulă:
|𝛻𝐼𝑃𝑒|=1
ℎ√(𝐼𝑃𝐸−𝐼𝑜)2+[(𝐼𝑃𝑁𝐸+𝐼𝑃𝑁−𝐼𝑃𝑆−𝐼𝑃𝑆𝐸)]
4. (12)
O asftel de formula este similară și pentru celelalte trei direcții. După discretizare,
formula devine:
∑1
|𝛻𝐼𝑝|(𝐼0−𝐼𝑝)+𝜆_𝐷(𝐼𝑂−𝐼00
𝑝∈𝛬0)=0,
, (13)
unde 𝛬𝑂=𝑃𝐸,𝑃𝑁,𝑃𝑊,𝑃𝑆 reprezintă cei patru pixeli adiacenți ai pixelului principal O. Pentru
orice pixel O, se definește
ω𝑃=1/|∇𝐼𝑃|𝑃∈Λ𝑂,
ℎ𝑝=ω𝑃/[∑ω𝑃+λ𝐷(𝑂)𝑃∈Λ𝑂], (14)
ℎ𝑂=λ𝐷(𝑂)/[∑ω𝑃+λ𝐷(𝑂)𝑃∈Λ𝑂].
Aici, P=𝑃𝐸, apoi p reprezint[ punctul 𝑃𝑒. Așadar, formula devine:
𝐼𝑂=∑ℎ𝑃+𝐼𝑃+ℎ𝑂𝐼𝑂0
𝑃∈Λ𝑂,
(15)
∑ℎ𝑃+ℎ𝑂=1𝑃∈Λ𝑂.
14
Prin această cale, formula ”” poate fi rescrisă într -o formă iterativă Gauss -Jacobi:
𝐼𝑂(𝑛)=∑ℎ𝑃(𝑛−1)
𝑃∈Λ𝑂𝐼𝑃(𝑛−1)+ℎ𝑂(𝑛−1)𝐼𝑂0. (16)
Când este făcută o anumită implementare este folosită o mască pentru a determina
prima zona ce va fi restaurată, apoi, potrivit informațiilor din jurul zonei deteriorate,
algoritmul de inpainting va fi folosit pentru a restaura automat in formația, potrivit formulei
(12) . Pașii algoritmului sunt următorii:
1. Citirea imaginii și a informației din mască.
2. Executarea pașilor 3, 4, 5 pentru fiecare pixel din mască.
3. Calcularea valorilor primelor derivate și valoarea modulului gradientului pentru
fiecare pixel în parte.
4. Setează λ𝐷(𝑂)=1, dacă pixelul este localizat în afara zonei ce va fi restaurate .
5. Obținerea noilor valori ale pixelilor p rin calcularea termenului ℎ𝑃 și a termenului ℎ𝑂.
Aceste valori sunt salvate în noua imagine formată.
6. Calcularea diferenței dintre noua imagine și vechea imagine. Dacă este mai mică decât
pragul dat, se înlocuiește vechea imagine cu cea nouă și apoi se părăsește programul.
Altfel, se execută din nou pasul 2.
Rezultatul după executarea algoritmului este urm ătorul :
Figura 2.1 2 Eliminarea textului din imagine: Stânga -Imaginea deteriorată, dreapta -imaginea reparată
2.3 Metoda rară
Metoda rară a fost introdusă în anul 2005 și era cunoscută sub denumirea de „Analiza
Componentelor Morfologice” (AMC) . La mod general , AMC descompune imaginea într -un
strat de structură și un strat de desen, și apoi se folosesc două dicționare incoerente pentru a
15
recupera separat cele două straturi. În ceea ce privește cele două părți, AMC rezolvă problema
de minimizare cu termenul normă 𝐼0 și termenul Variației Totale ca și constrângere.
Se dă următoarea ecuație:
𝛼𝑡0𝑝𝑡,𝛼𝑛0𝑝𝑡=𝑎𝑟𝑔min
𝛼𝑡0𝑝𝑡,𝛼𝑛0𝑝𝑡‖𝛼‖11+‖𝛼𝑛‖11+λ‖𝑋−𝑇𝑡 𝛼𝑡−𝑇𝑛 𝛼𝑛‖22+𝛾𝑇𝑉{𝑇𝑛 𝛼𝑛}, (17)
unde norma 𝑙1 înlocuiește norma 𝑙0 și 𝑇𝑡 reprezintă textura iar 𝑇𝑛 desenul.
2.4 Metoda bazată pe Curbura Condusă de Difuzie (CCD)
Pentru elaborarea acestei metode a fost modificat ă Metoda Variației Totale de către
Chan și Shen (Gong, et al. 2019) . Cei doi au fost cei care au propus noua metodă a Curburii
Condusă de Difuzie (CCD) . În metoda de inpainting CCD, coeficientul de conductibilitate a
Variației Totale este modificat, acesta devenind
𝜈=𝑔(|𝑘|/|∇𝐼|), (18)
unde g este definit ca
𝑔(𝑘)={𝜕𝐼
𝜕𝑡=𝑑𝑖𝑣[𝑔(|𝑘|)
𝛻𝐼𝛻𝐼], 𝑥 ∈𝐷
𝐼=𝐼0, 𝑥∈𝛺\𝐷, (19)
unde 𝑘=𝑑𝑖𝑣[∇𝐼/|∇𝐼|] reprezint ă curbura .
Rezultatele acestei metode sunt următoarele :
Figura 2.4 1 Eliminarea zgârieturilor din imagin
16
2.5 Metoda lui Bertalmio
Tehnica lui Bertalmio (Bertalmio, et al. 2000) propune o metodă prin care utilizatorul
selectează regiunile care urmează să fie restaurate, iar algoritmul completează porțiunile
incomplete acoperind u-le cu informații . Procesul de completare a l regiunilor permite
completarea simultană a mai multor regiuni care conțin structuri diferite. Informațiile sunt
propagate prin liniile izofote care traversează marginile. În plus , tehnica propune prelungirea
liniilor izofote până la conturul regiunii , menținând în același timp unghiul de „sosire”.
Aplicațiile acestei tehnici includ restaurarea fotografiilor vechi și a filmului deteriorat,
eliminarea suprapunerii de text cum ar fi datele, subtitrările sau publicita tea și eliminarea
obiectelor din imagini. Dezavantajul principal al acestei metode este reprezentat de faptul că
algoritmul nu poate reconstrui texturile (Bertalmio, et al. 2000, Vreja and Brad 2014) .
Figura 2. 5 1 Eliminarea măzgăliturilor din imagine realizată de către Bertalmio (IMAGINE LUATĂ DIN (Bertalmio, et al. 2000) )
Algoritmul lui Bertalmio
Se notează cu Ω regiunea ce va fi supusă procesului de inpainting și cu ∂Ω conturul
regiunii date. Continuăm desenând conturul de la ∂Ω spre interior . Scopul metodei este de a
propaga informația de -a lungul liniilor izofote care traversează conturul. Algoritmul
funcționează în mod iterativ și crează o familie de imagini, fiecare imagine reprezent ând o
versiune îmbunătățită a celei anterioare (Bertalmio, et al. 2000, Vreja and Brad 2014) .
Implementarea algoritmului
Fie 𝐼0(i,j) : [0,𝑀] × [0,𝑁]→ℝ, cu : [ 0,𝑀] × [0,𝑁]⊂ℕ×ℕ o imagine cu nivel de gri
2D. Inpainting -ului digital va construi o familie de imagini 𝐼(𝑖,𝑗,𝑛):[0,𝑀]×[0,𝑁]×ℕ→ℝ
astfel încât 𝐼(𝑖,𝑗,0)=𝐼0(𝑖,𝑗) și 𝑙𝑖𝑚
𝑛→∞𝐼(𝑖,𝑗,𝑛)=𝐼𝑅(𝑖,𝑗), unde 𝐼𝑅(𝑖,𝑗) reprezintă ieșirea
algoritmului . Se consideră
𝐼𝑛+1(𝑖,𝑗)=𝐼𝑛(𝑖,𝑗)+∆𝑡𝐼𝑡𝑛(𝑖,𝑗),∀(𝑖,𝑗)∈Ω, (20)
17
unde n arată timpul de inpainting , ( i,j) sunt coordonatele pixelului, ∆𝑡 este rata de îmbunătățire
și 𝐼𝑡𝑛(𝑖,𝑗) reprezintă actualizarea imaginii 𝐼𝑛(𝑖,𝑗), iar 𝐼𝑛+1(𝑖,𝑗) reprezintă intensitatea pixelului .
Figura 2. 5 2 Reprezentarea imaginii Ω(figură luată din (Bertalmio, et al. 2000) ).
În ecuația (1 9), imaginea 𝐼𝑛+1(𝑖,𝑗) este o versiune îmbunătățită a imaginii 𝐼𝑛(𝑖,𝑗) cu
„îmbunătățirea” dată de 𝐼𝑡𝑛(𝑖,𝑗). Pe măsură ce n crește se va obține o imagine din ce în ce mai
bună. Pentru ca reconstrucția imaginii să nu -și piardă dn acuitate, a supra acestui algoritm se
aplică o difuzie anizotropă:
∂I
∂t(x,y,t)=𝑔∈(𝑥,𝑦)𝑘(𝑥,𝑦,𝑡)|𝛻𝐼(𝑥,𝑦,𝑡)|,∀(𝑥,𝑦)∈𝛺∈, (21)
unde 𝛺∈ reprezintă dilata rea lui 𝛺 de rază ∈ și k este curbura Euclidiană a izofote lor lui I, iar
𝑔∈(𝑥,𝑦) este o funcție de netezire în 𝛺∈.
În primul pas, întreaga imagine va suferi de o difuzie anizotropă de netezire pentru a
minimiza influeța zgomotului pe direcția liniilor izofote care ajung la ∂Ω. După acestea,
imaginea intră într-o buclă a procesului de inpainting, unde doar valorile din interor sunt
modificate (Bertalmio, et al. 2000, VLAŠÁNEK 2014) .
Următorul pas al algoritmului este proiectarea versiunii îmbunătățite 𝐼𝑡𝑛(𝑖,𝑗).
𝐼𝑡𝑛(𝑖,𝑗)=(𝛿𝐿𝑛⃗⃗⃗⃗⃗⃗⃗ (𝑖,𝑗)∙𝑁⃗⃗ (𝑖,𝑗,𝑛)
|𝑁⃗⃗⃗⃗ (𝑖,𝑗,𝑛)|)|𝛻𝐼𝑛(𝑖,𝑗)|, (22)
𝛿𝐿𝑛⃗⃗⃗⃗⃗⃗⃗ (𝑖,𝑗)≔(𝐿𝑛(𝑖+1,𝑗)−𝐿𝑛(𝑖−1,𝑗),𝐿𝑛(𝑖1,𝑗+)−𝐿𝑛(𝑖,𝑗−1)), (23)
𝐿𝑛(𝑖,𝑗)=𝐼𝑥𝑥𝑛(𝑖,𝑗)+𝐼𝑦𝑦𝑛(𝑖,𝑗), (24)
unde 𝛿𝐿𝑛⃗⃗⃗⃗⃗⃗⃗ este vectorul care indică schimbarea intensității în imagine a obținută după aplicarea
operatorului Lapacian (Bertalmio, et al. 2000, VLAŠÁNEK 2014, Vreja and Brad 2014) .
Direcția liniei izofote este dată de următoarea expresie:
18
𝑁⃗⃗ (𝑖,𝑗,𝑛)
|𝑁⃗⃗⃗⃗ (𝑖,𝑗,𝑛)|, (25)
unde 𝜀 este o valoare mică destinată să evite împărțirea prin și 𝐼𝑥𝑛 și 𝐼𝑦𝑛 sunt intensități
determinate de diferența dintre intensitățile pixelului următor și cel anterior. Mai departe
urmează panta care are proprietatea de a îmbunătăți stabilitatea . Aceasta este descrisă de:
|𝛻𝐼𝑛(𝑖,𝑗)|=
{ √(𝐼𝑥𝑏𝑚𝑛)2+(𝐼𝑥𝑓𝑚𝑛)2+(𝐼𝑦𝑏𝑚𝑛)2+(𝐼𝑦𝑓𝑚𝑛)2, 𝛽𝑛>0,
√(𝐼𝑥𝑏𝑀𝑛)2+(𝐼𝑥𝑓𝑚𝑛)2+(𝐼𝑦𝑏𝑀𝑛)2+(𝐼𝑦𝑓𝑚𝑛)2, 𝛽𝑛<0,
𝛽𝑛(𝑖,𝑗)=𝛿𝐿𝑛⃗⃗⃗⃗⃗⃗⃗ (𝑖,𝑗)∙𝑁⃗⃗⃗ (𝑖,𝑗,𝑛)
|𝑁⃗⃗⃗⃗ (𝑖,𝑗,𝑛)|, (26)
unde b și f reprezintă diferența dintre intensitățile pixelului curent și a pixelului situat în spatele
sau în fața acestuia, pe axele OX, OY. Indicii M și m exprimă faptul că va fi aleasă valoarea
minimă sau maximă din tre rezul tatul obținut și 0 (Bertalmio, et al. 2000) .
Metoda propusă de Bertalmio intercalează un număr de pași A ai procesului de
inpainting cu un număr de pași B ai difuziei anizotrope, unde A, B, T (numărul de iterații)
reprezintă parametrii de intrare (Vreja and Brad 2014) .
Algoritmul se execută astfel:
Prima dată se calculează estimarea 2D a netezirii L din ecuația ( 23) în și estimarea
direcției izofotei 𝑁⃗⃗ /|𝑁⃗⃗⃗⃗ | în (24). Apoi, se calculează 𝛽𝑛, proiecția vectorului 𝛿𝐿𝑛⃗⃗⃗⃗⃗⃗⃗ la vectorul
𝑁⃗⃗ , adică se calculează mai ex act modificarea lui L de-a lungu l direcției lui 𝑁⃗⃗ . La sfârșitul
acestor operații se va multiplica 𝛽𝑛 cu o versiune de pantă limitată a normei gradientului
imaginii,|𝛻𝐼| din ecuația (26) (Bertalmio, et al. 2000) .
Atunci când algoritmul de inpainting ajunge la starea de echilibru, adică atunci când
𝐼𝑡= 0, ∇ (netezirea) a fost rezolvată din punct de vedere geometric . Dacă ∇⊥=0, atunci
netezirea va deveni constantă de -a lungul liniilor izofote (Bertalmio, et al. 2000) .
Atunci când sunt aplicate ecuațiile ( 20)-(26) asupra pixelilor frontierei ∂Ω ai regiunii
ce va suferi procesul de re staurare Ω, sunt folosiți pixelii din afara regiunii, informația fiind
propagată în interior (Bertalmio, et al. 2000) . În bucl a de restaurare se vor efectua A pași de
restaurare cu ajutorul ecuației (20), apoi se vor efectua B pași ai difuziei cu ajutorul ecuației
(21) și așa mai departe. Algoritmul se va opri atunci când modificările din imagine ajung sub
un anu mit prag (Bertalmio, et al. 2000, Vreja and Brad 2014) .
19
Rezultate
Algoritmul lui Bertalmio este unul foarte complex și reușește să elimine defectele
imaginilor cum ar fi zgârieturile, măzgăliturile sau scrisul din imaginile deteriorate. Astfel, în
ceea ce urmează se vor ilustra trei tipuri de imagini care au fost restaurate după procesul de
inpainting. Acestea sunt următoarele:
Imaginea care prezintă zgârieturi :
Figura 2. 5 3 Stânga:Imaginea deteriorata; Dreapta: Imaginea reparată
Imaginea care prezintă măzgălituri:
Figura 2.5 4 Stânga:Imaginea deteriorata; Dreapta: Imaginea reparată
Imaginea care prezintă scris pe suprafața acesteia:
Figura 2. 5 5 Stânga:Imaginea deteriorata; Dreapta: Imaginea reparată
20
2.6 Algoritmul lui Criminisi
2.6.1 Metoda clasică
În ceea ce privește metodele bazate pe exempl e, Criminisi, Prezez și Toyama (Criminisi,
et al. 2004) aduc cu o abordare eficientă care umple regiunile și elimină obiectele dorite dintr –
o imagine. Această metodă introduce difuzia din algoritmul de bază al tehnicilor de retușare în
structură pentru a defini porțiunea de retușare care are capacitatea de a repara structurile
informației imaginii, calculând precizia blocului țintă atunci când prioritat ea nu este așa
ridicată, fapt care conduce la ordinea greșită de umplere astfel încât rezultatele procesului să nu
fie satisfăcătoare (Gong, et al. 2019) . Algoritm ul este eficient și are o performanță uluitoare în
ceea ce priveșt e sinteza structurii, luând în considerare liniile izofote ca re traversează zona
închisă (Criminisi, et al. 2004, Vreja and Brad 2014) .
𝐼
Figura 2. 6 1 Delimitarea zonelor supuse algoritmului (FIGURĂ LUATĂ DIN (Criminisi, et al. 2004) )
În figura 2.6 1 , Ω reprezintă zona necunoscută. 𝛷 este regiunea sur să care reprezintă
de fapt zona cunoscută , 𝛿𝛺 reprezintă linia care arată limitele regiunii 𝜓𝑝 care va fi supusă
procesului de reparare.
Bazele algoritmului
Există două tipuri principale care au dus la bazele algoritmului :
A. Sinteza bazată pe exemple
B. Procesul de umplere
A. Sinteza bazată pe exemple
Sursa de proveniență a algoritmului este procesul de eșantionare ale liniilor izofote din
imagine . Regiunea țintă este indicată de 𝛺, iar conturul este notat cu 𝛿𝛺. Conturul evoluează
spre interior pe durata algoritmului. Regiunea sursă, care rămâne fix ă pe toată durata
21
algoritmului, furnizează probe utilizate în procesul de umplere. Ne imaginăm că modelul 𝛹𝑝∈
𝛺 va fi umplut. Cea mai bună potrivire din regiunea sursă provine din porțiunea 𝛹𝑞̂∈Φ care
este cel mai similar cu părțile deja umplute din 𝛹𝑝. Astfel că dacă 𝛹𝑝 se află în continuarea
muchiei imaginii, cele mai bune potriviri se vor afla pe aceeași muchie (Criminisi, et al. 2004,
Ying, Kai and Ming 2017) . Pentru propagarea liniilor izofote spre interior va fi nevoie de un
simplu transfer al modelului cel ei mai bun e porțiuni din sursă.
B. Procesul de umplere
Acest proces ilustrează influența mare a ordinii procesului de umplere.
Figura 2. 6.2 Ordinea completării imaginii (FIGURĂ LUATĂ DIN (Criminisi, et al. 2004) )
Figura 2.6.2 ilustrează comparația între umplerea standard a stratului concentric (coaja
de ceapă) și comportamentul dorit de umplere. Pun ctele b, c și d arată umplerea progresivă a
regiunilor țintă. Punctele b’, c’, d’ ilustrează un algoritm mai bun de umplere care dă o prioritate
mai mare asup a acelor regiuni ale zonei țintă care se află în continuarea structurii imaginii
(Criminisi, et al. 2004, Song and Yan n.d.) .
Algoritmul de umplere al metodei lui Criminisi
Prima dată se alege o imagine de intrare în care utilizatorul va selecta regiunea țintă, 𝛺,
care va fi înlăturată și apoi umplută. (Criminisi, et al. 2004, Vreja and Brad 2014, Ying, Kai
and Ming 2017, Song and Yan n.d.) . Regiunea sursă, 𝛷, este definită ca fiind formată din
imaginea întreagă minus regiunea țintă 𝛷=𝐼−𝛺 .
Următorul pas va fi specificarea mărimii modelului 𝛹. Pentru o mai bună prezicie a
algoritmului se alege de obicei o fereastră de pixeli de dimensiune 9 × 9 pixeli. Odată ce
parametrii sunt determinați, procesul de umplere funcționează automat (Criminisi, et al. 2004,
Ying, Kai and Ming 2017) .
22
În acest algoritm, fiecare pixel își menține o valoare a culorii (sau rămâne gol, dacă
pixelul este necompletat) și o valoare a încrederii, care reflectă încrederea în valoarea pixelului
și care este blocat odată ce pixelul a fost completat. Pe durata algoritmului, porțiunile situate
de-a lun gul frontului de umplere d au și ele o valoare de încredere temporară ce va determina
ordinea în care pixelii vor fi completați. Apoi, algoritmul va itera următorii trei pași până când
toți pixelelii vor fi completați:
a. Calcularea priorităților peticelor.
Algoritmul efectuează sarcina de sinteză printr -o strategie de ”cea mai bună completare” ce
depinde în întregime de valorile priorităților atribuite fiec ărei porțiuni de imagine în parte pe
frontul de umplere. Calculul prioritar este prioritar față de acele p orțiuni care:
a) sunt pe continuarea marginilor puternice ;
b) sunt înconjurate de pixeli cu încredere mare.
Porțiunea de imagine dată 𝛹𝑝 este centrat ă în punctul p pentru orice 𝑝∈𝛿𝛺 se definește
proprietatea sa P(p) prin produsul a doi termeni:
P(p)=C(p)*D(p) , (27)
2.5.3 Principiul algoritmului (FIGURĂ LUATĂ DIN (Song and Yan n.d.) )
unde C(p) reprezintă un termen de încredere asociat cu blocul 𝛹𝑝 (cu cât este mai mare numărul
pixelilor cunoscuți cu atât este mai mare încrederea). D(p) reprezintă termenul de date care
procesează informațiile conținute în fereastra 𝜓𝑝.
Acești doi ter meni sunt definiți dupa cum urmează:
𝐶(𝑝)=∑ 𝐶(𝑞)𝑞∈𝜓𝑝∩(𝛷)
𝜓𝑝 , 𝐷(𝑝)=|𝛻𝐼𝑝⊥𝑛𝑝|
𝛼. (28)
23
unde 𝛷=𝐼−𝛺,|𝛹𝑝| reprezintă suprafața ferestrei 𝛹𝑝 centrată în pixelul p aparținând lui 𝜕𝛺,
cu 𝛼 factor de normalizare cu valoare 255, 𝑛𝑝 este normală față de contrul 𝜕𝛺 în punctul p,
⊥ indică operatorul ortogonal, iar 𝛻𝐼𝑝⊥ este normală la gradientul liniei izofote 𝛻𝐼𝑝⊥=𝐼𝑥+𝐼𝑦
(Criminisi, et al. 2004, Vreja and Brad 2014, Ying, Kai and Ming 2017) .
Pentru calcularea priorit ății lui P(p) este necesar un pas de inițializare în care toți pixelii
care aparțin măștii au termenul de încredere C(p)=0 , iar cei din banda sursă au încrederea
C(p)=1 . Cel de -al doilea termen al formulei (27) îl reprezintă procesul de însuflețire în sine.
D(p) rerezintă o funcției a puterii liniilor izofote ca re interacțonează cu frontul 𝛿𝛺 la fiecare
iterație (Criminisi, et al. 2004, Ying, Kai and Ming 2017, Song and Yan n.d.) .
b. Propagarea informațiilor despre textură și structură
După ce toate prioritățile din frontul de completare au fost calculate, este găsit ă porțiunea
𝛹𝑝̂ cu cea mai mare prioritate. Apoi se va completa în imagine cu date extrase din regiunea
sursă 𝛷. Textura imaginii este propagată prin eșantionare a direct ă a regiunii sursă. Apoi se va
căuta în regiunea sursă o porțiune care este foarte similar ă cu 𝛹𝑝̂:
𝛹𝑞̂ =arg min 𝑞∈𝛷 d(𝛹𝑝̂,𝛹𝑞). (29)
După găsirea exemplului sursei 𝛹𝑞̂, valoarea fiecărui pixel ce va fi completat, p’, 𝑝’∈
𝛹𝑝̂∩𝛺 este copiată din poziția sa corespunzătoare în interorul 𝛹𝑞̂ cu ajutorul formulei SSD ce
calculează suma diferențelor pătrate a pixelilor cei mai mari .
𝑆𝑆𝐷=√∑∑(𝑝𝑖𝑗−𝑞𝑖𝑗)2 𝑛
𝑗=1𝑚=1
𝑖=1 , (30)
unde m,n reprezintă lungimea și lățimea p orțiunii , p reprezintă fiecare pixel din porțiune ce
urmează a fi restaurat și q reprezintă pixelul din regiunea sursei 𝛷. Prin compararea valorilor
corespu nzătoare din SSD a fiecărui pixel se găsește 𝛹𝑞 din regiunea sursei 𝛷 care
minimizează SSD-ul și apoi va copia informații din imaginea 𝛹𝑞̂ în imaginea 𝛹𝑝.
c. Îmbunătățirea valorii temenului de încreder e
După umplerea p orțiunii 𝛹𝑝̂ cu pixeli de valori noi, î ncrederea C(p) este actualizată în
jurul zonei delimitate de 𝛹𝑝̂ astfel:
𝐶(𝑝)= 𝐶(𝑝̂), ∀ 𝑝∈𝛹𝑝̂∩𝛺. (31)
24
d. Algoritmul de umplere a regiunilor:
1. Se extrage frontul inițial selectat manual 𝛿𝛺0. Se repetă următoarea sevență până se
va termina:
1. a. Se identifică frontul de umplere 𝛿𝛺𝑡. Dacă 𝛺𝑡 =∅, se iese din program.
b. Se calculează prioritățile P(p) ∀ p ∈ 𝛺𝑡.
2. a. Se găsește porțiunea 𝛹𝑝̂ cu un număr maxim de priorități, adică
𝑝̂=𝑎𝑟𝑔 𝑚𝑎𝑥𝑝∈𝛺𝑡𝑃(𝑝).
b. Se găsește sursa exemplară 𝛹𝑞̂∈ Φ care minimizează distanța 𝑑(𝛹𝑝̂,𝛹𝑞)
c. Copiați datele imaginii din 𝛹𝑞̂ în 𝛹𝑝̂ ∀ p∈𝛹𝑝̂∩𝛺.
3. Se actualizează C(p) ∀p∈𝛹𝑝̂∩Ω
În final, pixelii sunt clasif icați ca aparținând regiun ii țintă 𝛺, regiun ii sursă sau la
restul ui imaginii prin atribuirea unor valori alfa. Canalul de imagine alfa este actualizat la
fiecare iterație a algoritmului de umplere (Criminisi, et al. 2004, Vreja and Brad 2014) .
Rezultat ul după aplicarea algoritmului este următorul :
2.5.4 Eliminare a unui obiect mare dintr -o imagine de către Criminisi (IMAGINE LUATĂ DIN (Criminisi, et al. 2004) )
2.6.2 Metoda actualizată
Pentru a actualiza algoritmul lui Criminisi a fost folosit algoritmul de segmentare a l
imaginii. Acest proces reprezintă o metodă morfologică matematică care are în primul rând
rapiditate în efectuarea calculelor, în al doilea rând linia de contur a obiectului este mai
apropiată de imagine , iar în al treilea rând se utilizează o precizie de poziție mult mai bună . Un
prim al goritm de segmentare al imaginii este cel al cumpenei de apă (Ying, Kai and Ming 2017) .
El a fost descris în două moduri :
25
1. Metoda picăturilor de ploaie.
Atunci când începe ploaia , picăturile acesteia vor curge pe regiunile care au un nivel
redus de cre ștere. Picaturile mici care s -au adunat pe traiectoria zonei formează o regiune
numită bazin de colectare al apei.
2. Stimularea procesului de revărsare.
Această metodă creează o gaură în suprafața reginunii minime în timp ce apa țâ șnește
din interiorul acelei găuri și inundă ușor o regiune mică din jurul acelei zone, domeniul de
aplicare al zonei foarte mici fiind bazinul de colectare a apei. Supusă procesului segmentare a
imaginii, imaginea originală este transformată într -o imagine marcat ă care aparține aceluiași
bazin de colectare cu aceeași etichetă, și se foloște un semn special pentru a identifica punctul
de pe bazin (Ying, Kai and Ming 2017) .
Algoritmul actualizat
Actualizarea algo ritmului are loc prima dată în formula priorității (28). Astfel că, pentru
descierea caracteristicilor imaginilor locale, se introduc liniile izofote în elementul de date, iar
greutatățile 𝛼 și 𝛽 sunt introduse în calculul priorității (Song and Yan n.d.) .
Noua formulă devine:
𝑃(𝑝)= 𝛼∙𝐶(𝑝)+𝛽∙(𝐷(𝑝)+1
𝐾(𝑝)), (32)
K(p)=∇∙[∇I𝑝
|∇I𝑝|], (33)
unde K(p)= 𝛼+ 𝛽 reprezintă curbura liniilor izofote prin centrul pixelului p. Introducerea
factorului de curbură evită ca prioritatea să mai ajungă la 0 atunci când elementul de dat e este
0 (Song and Yan n.d.) .
După calcularea priorității maxime, algoritmul original al lui Criminis i utilizează
metoda de că utare globală în regiunea sursă pentru a găsi blocul de pixel i corespunzător
numărului maxim de prioritate a blocurilor de pixeli. Aceasta metodă împarte , prin intermediul
segementarii de imagine , imaginea într -un număr de suprafețe . Algoritmul cumpenei de
segmentare al imaginilor poate clasifica caracteristicile de textură și caracteristicile texturii de
curbură ale imaginii liniare pentru a reduce aria de căutare a potrivirii blocului de pixel, iar cea
mai bună potrivire va fi găsită în locul în care blocul de pixeli aparține unui număr maxim de
prioritate. Avantajul acestui algoritm este că economisește timp și că îmbunătățește efectul de
restaurare al im aginii (Song and Yan n.d.) .
26
Aplicarea noilor actualizări, adică a noii fun cții de prioritate și a noii metode de căutare
se face astfel:
1. Algoritmul cumpenei de segmentare al imaginii este folosit pentru a face față la
împărțirile regionale ale imaginii ce va fi restaurată.
2. Utilizatorul poate marca sursa țintă Ω cu o culoare specială.
3. Formula (17) este folosită pentru a calcula toți pixelii din imagine și pentru a selecta
prioritatea maximă a blocului țintă.
4. În regiunea unde prioritatea maximă a blocului țintă este atinsă, blocul de pixeli este
căutate prin intermediul criteriului de căutare SSD pentru a găsi cele mai bune
potriviri ale blocurilor eșantioane în imaginea sursă și apoi se va copia în blocul țintă
de priorit ate maximă .
5. După aceea, se actualizează valoarea priorității folosind formula (16).
6. Se vor repeta pașii 2-5 până ce restaurarea imaginii va fi completă.
2.7 Algoritmul lui Efros și Leung
2.7.1 Metoda clasică
Această metodă face parte din metodele bazate pe exempl e și a fost dezvoltată în anul
1999 . Ea introduce o abordare non -parametrică a modelării lui Markov în contextul sintezei de
structur ă (Vreja and Brad 2014, Efros and Leung 1999, Cheng and Li 2018) .
Scopul acestei metode este de a restaura structura imaginii pixel cu pixel. Pentru aceasta
se folosește o imagin e ca sursă unde valorile pixelilor sunt alese pentru efectuarea sintezei, fiind
dată cât e o valoare pentru fiecare pixel, în funcție de acordul vecinilor cu partea deza sintetizată
a imaginii de ieșire. Dezavantajul acestui algoritm este că unele texturi au tendința de „ a
aluneca” către partea greșită a spațiului de căutare și apoi începe să depună reziduri pe imagine
sau să se blocheze în interi orul imaginii eșantion într -un singur loc și să producă copii
asemănătoare ale originalului (Vreja and Brad 2014, Efros and Leung 1999, Aguerrebere,
Gousseau and Tartavel 2013) .
Metoda lui Efr os și Leung oferă randamente viz uale din punctul de vedere al rezultatelor
de sinteză, chiar și atunci când sunt folosite imagini cu o textură structurată foarte bine .
Implementarea algoritmului
Fie I o imagine care va fi sintetizată după eșantionul de textură 𝐼𝑠𝑚𝑝⊂𝐼𝑟𝑒𝑎𝑙, unde 𝐼𝑟𝑒𝑎𝑙
este o textură reală infinită. Fie p ∈ I un pixel și fie 𝜔(𝑝)∈ 𝐼 o porțiune pătrat ă de imagine de
lățime 𝜔 centrat în p. Fie 𝑑𝑝𝑒𝑟𝑐(𝜔1,𝜔2) ce indică câteva distanțe perceptuale între două porțiuni
27
de imagine . Așadar, toții pixelii din I sunt cunoscuți, mai puțin pixelul p. Pentru sintetizarea
valoarii pixelului p se construiește prima dată o aproximare a distrubiției condiționale a
probabilității 𝑃(𝑝|ω(𝑝)) (Efros and Leung 1999) .
Se definește prima dată
𝛺(𝑝)={ 𝜔′⊂:𝑑𝑝𝑒𝑟𝑐(𝜔′,𝜔(𝑝))=0}. (34)
Apoi se va folosi o euristică cu ajutorul căreia se va afla o condiție plauzibilă
𝛺′(𝑝)≈𝛺(𝑝) . În implementare se folosește variația celor mai apropiați k vecini:
• cea mai apropiată potrivire ω𝑏𝑒𝑠𝑡=𝑎𝑟𝑔𝑚𝑖𝑛ω(ω(𝑝),ω)⊂𝐼𝑠𝑚𝑝 este găsită și toate
peticele de imagine Ω′ cu 𝑑𝑝𝑒𝑟𝑐(ω′,ω(𝑝))<ε sunt incluse în Ω′, unde ε reprezintă
pragul (Efros and Leung 1999, Aguerrebere, Gousseau and Tartavel 2013) .
Găsirea distanței potrivit e:
Suma normalizată a diferențelor pătrate metrice 𝑑𝑆𝑆𝐷. Această metrică atribuie aceeași
greutate fiecărui pixel nepotrivit, acesta putând fii poziționat fie în apropierea centrului sau fie
marginii ferestrei. Pentru a conserva structura locală a texturii, erorile pixelilor cei mai apropiați
ar trebui să fie mai mare decât a celor mai îndepărtați. Pentru obținerea acestui efect a fost setată
𝑑𝑝𝑒𝑟𝑐 ca fiind 𝑑𝑝𝑒𝑟𝑐=𝑑𝑝𝑒𝑟𝑐∗𝐺, unde G reprezintă nucleul bidimensional al lui Gauss (Efros
and Leung 1999) .
Sintetizarea texturii
Soluția cea mai corectă pentru a considera probabilitatea comună a tuturor pixelilor
împreună nu poate fi realizabilă pentru imagini de dimensiuni reale. Pentru sintetizarea texturii
s-a folosit o euristic ă unde textura crește în straturi pe exterior pentru o dată de start de
dimensiuni 3×3 aleasă aleator din eșantionul de imagini. Se cunosc doar unele valori a le
pixelil or ce vor fi sintetizați în 𝜔(𝑝). Acest lucru poate fi făcut foarte rapid doar prin potrivirea
pixelilor în p și prin normalizarea erorilor prin numărul total de pixel cunoscuți atunci când se
calculeaz ă condiționala pdf pentru p (Efro s and Leung 1999) .
Rezultatul după implementarea algoritmului este reprezentat în figura următo are:
28
Figura 2. 7 1 Imaginea originlă (partea stângă) după ce a fost supusă algoritmului de sinteză a texturii de către Efros și Leung. Rezultatu l procesului a dus la o
imagine mărită (partea dreaptă). (IMAGINE LUATĂ DIN (Efros and Leung 1999) )
Algoritmul reușeste să reconstruiască excepțional structurile și texturile imaginii de mai
sus, aceasta căpătând o calitate mult mai bună. În figura de mai jos se ilustrează rezultatele
algoritmului în ceea ce privește refacerea structurii imaginii.
Figu ra 2. 7. 2 Restaurarea structurii imaginii
2.7.2 Metoda actualizată
Noul algoritm a fost obținut prin folosirea PCA pentru a -i da mai multă rapiditate din
punt de vedere al timpului de lucr u. În vechiul algoritm se pierdea foarte mult timp atunci când
se generau M pixeli pentru o imagine eșantion de N pixeli, utilizând o fereastră ce conține K
pixeli.
Accelerarea programului se face după cum urmează :
Pentru un pixel p dat în sinteza imaginii B, calcularea distanței 𝑑(𝑁(𝑝) 𝑁(𝑝′)) este
oprită atunci când pragul (1+𝜀)d𝑚 este atins, adică, atunci când se cunoaște că porțiunea de
imagine căutat ă a imagin ii original e nu se află în 𝑆𝜀 (Aguerrebere, Gousseau and Tartavel
2013) .
Parametrul de toleranță 𝜀 controlează calitatea porțiunilor candidate în 𝑆𝜀(𝑝). Cu cât 𝜀
este mai mare, cu atât p orțiunile pretendente poate să difere de ce a mai bun ă porțiune
pretendent ă. Pe de o parte, o valoare mare a toleranței este predispusă să adune reziduri, ceea
29
ce va duce la producere a unor rezultate inconsistente pe care algoritmul nu poate să le
recupereze (Aguerrebere, Gousseau and Tartavel 2013) .
Implementarea algoritmului
Algoritmul lucrează după următoarea secvență :
Se con sideră o imagine originală A și o imagine B care va fi sintetizată. Se presupune
o mică parte a imaginii, denumită dată de start . Apoi, sinteza continuă iterativ cu câte un pixel,
crescând spre exteriorul straturilor de la data de start inițială .
Se dă un pixel p ce va fi sintetizat, se consideră o suprafață a vecinilor de dimensiuni
𝑛×𝑛 în jurul pixelului denumit porțiune . Partea acest ei porțiuni de pixeli cu valori cunoscute
se numește porțiune cunoscut ă. Apoi, se v or căuta toți pixelii din imaginea originală A, găsindu –
se o porțiune cunoscut ă similar ă cu ce a a pixelui p și se va desena la întâmplare unul din ei
(Aguerrebere, Gousseau and Tartavel 2013) .
Notațiile pentru cele două imaigni sunt următoarele:
A- reprezintă imaginea originală ,
B- reprezintă imaginea ce va fi sintetizată .
Imaginile sunt definite într -un subansamblu dreptunghiular ℤ2. Pixelii sunt definiți ca
fiind părți componente ale acestui subansamblu. Pentru un pixel p din fiecare imagine, se va
scrie N(p) pentru porțiunea de imagine din jurul lui p de dimensiune 𝑛×𝑛, unde n este număr
întreg (Aguerrebere, Gousseau and Tartavel 2013) . După acestea, s e calculează prima dată
distanța d(N(p), N( 𝑝′)) pentru vecini i cunoscuți ai pixelului p. Apoi, sinteza va avea loc pri n
executarea unui proces iterativ, pornind inițial de la 𝑘×𝑘 regiuni, numite date de start. Pentru
primul pixel, singura zonă cunoscută din care d este calculată se numește dată de start . Apoi,
prin procesul iterativ se vor adăuga pixeli i sintetizați în interiorul zonei cunoscut e (Aguerrebere,
Gousseau and Tartavel 2013) .
După adăugarea pixelilor se calculează distanța porțiunii de imagine. Aceasta se
calculează după cum urmează:
Pentru doi pixeli, 𝑝′ din A și p din B, se definește distanța Gauss ponderată dintre vecinii
corespunzători :
𝑑(N(p),N(p′))=1
∑𝐺𝜎𝑖∈𝑁0(𝑖)∑(𝐴(p′+i)−𝐵(𝑝+𝑖))2𝐺𝜎(𝑖) 𝑖∈𝑁0, (35)
30
unde 𝐺𝜎 este o funcție Gauss cu deviația standard 𝜎 și 𝑁0 reprezintă o fereastră pătrată centrată
în origine de dimensiuni 𝑛×𝑛.
Sinteza unui singur pixel se face astfel
• Distanța minimă pentru N(p) în A pentru toate porțiunile ,
d𝑚(𝑝)=min
p′𝑑(𝑁(𝑝)𝑁(𝑝′)). (36)
• Setul de pixeli asemănător pixelului p, pentru un anumit parametru de toleranță 𝜀:
𝑆𝜀(𝑝)={p′∈A:d(min
p′𝑑(𝑁(𝑝)𝑚 𝑁( 𝑝′))≤(1+𝜀)d𝑚(𝑝)} . (37)
Așadar, pentru a sintetiza valoarea pixelului p, se va alege la întâmplare un pixel din 𝑆𝜀
de dimensiuni egale cu restul pixelilor. (Efros and Leung 1999, Aguerrebere, Gousseau and
Tartavel 2013) . Majoritatea porțiunilor conțin jumătate din tre valorile pixelilor cunoscuți, fie
pe partea stângă, dreaptă, ori partea de sus sau de jos.
Mai departe, pentru a face algoritmul să funcționeze, s e vor folosi 4 elemente de bază
din PCA. Fiecare element de bază este calculat din jumătățile porțiunilor de sus, jos, stânga sau
dreapta din imaginea eșantion . Apoi distanța dinte p orțiuni este calculată pentru un pixel p dat
astfel :
d(p,q)=d(𝑝𝑝𝑐𝑎,𝑞𝑝𝑐𝑎)+𝑑𝑒𝑥𝑡𝑟𝑎𝑝𝑖𝑥 (38)
unde 𝑝𝑝𝑐𝑎 reprezintă proiecți a jumătăților pe p orțiune cunoscute conținând p pe bazele
corespunzătoare din PCA. Patru dicționare PCA au fost create la începutul algoritmului. Dacă
vreun pixel aflat în plus este și el cunoscut, atunci diferența pătrată a pixelilor deja cunoscuți
𝑑𝑒𝑥𝑡𝑟𝑎 este adăugată la calculul distanței.
În plus, încă o modalitate de reducere a timpului de calcul îl reprezintă convertirea
imaginilor RGB (color) în imagini cu niveluri de gri (alb-negru) .
Algoritmul îmbunătățit produce o inovație din punct ul de vedere al capacității și al
dimensiunii un ei porțiuni . Atunci când dimensiunea porțiunii crește este din ce în ce mai mult,
este dificil de a găsi pot rivirile . Adică , pentru o valoare dată a lui 𝜀, dimensiunea 𝑆𝜀(𝑝) va
scădea în timp ce valoarea lui n va crește. Prin urmare, crescând dimensiunea p orțiunii va
rezulta o copie asemănătoare a acest eia. (Aguerrebere, Gousseau and Tartavel 2013)
31
Capitolul 3. Comparația între algoritmii selectați
Inpainting -ul bazat pe Ecuații cu Derivate Parțiale utilizează ecuațiile cu difuzie termală
pentru a propaga informația din jurul zonei deteriorate în interiorul zonei cu porțiuni de
imagine. Aceasta tranformă procesul de inpainting într -o serie de Ecuații cu Derivate Parțiale
sau într -o serie de modele cu funcționale de energie care pot fi procesate cu ajutoirul iterațiilor
numerice (Gong, et al. 2019) . Astfel că, această metodă nu ia în considerare ordinea acestora în
procesul d e inpainting al imaginilor și ia considerare doar stratul de structură, informația cea
mai prețioasă din imagine fiind adesea ori blurată. Însă, această metodă excelează prin viteza
de restaurare în inpainting -ul textruilor.
Inpainting -ul bazat pe Variața Totală utilizează ecuații Euler -Lagrange pentru
restauratea imaginii prin minimizarea Variației Totale a funcționale i de energie care este
cuplată cu o difuzie aniz iotropică pentru a păstra direcția izofotelor.
Metoda lui Bertalmio țintește spre stabilirea unui model de restaurare al imaginii cu
ajutorul liniilor izofote dispuse ca extensie a direcției, ce reține unghiul format de liniile izofote
și limita modelului și completează zonele deteriorate prin propagarea fină , în același timp , a
informației din zonele învecionate înspre direcția izofotelor (Bertalmio, et al. 2000) . Acest
algoritm poate obține rezultate bune atunci când imaginea este deteriorat ă pe regiuni înguste.
În orice caz, datorită caracteristicilor algoritmului, aceste tipuri de metode operează foarte încet
iar imaginea poate arăta blurată după procestul de inpainting . Aplicațiile acestei tehnici includ
restaurarea fotografiilor vechi și a filmului deteriorat, eliminarea suprapunerii de text cum ar f i
datele, subtitrările sau publicita tea și eliminarea obiectelor din imagini (Bertalmio, et al. 2000) .
Dezavantaj e:
a. Un dezavantaj major al acestei metode este reprezentat de faptul că algoritmul nu poate
reconstrui texturile (Vreja and Brad 2014) .
b. Un alt d ezavantaj major al algoritmului este acela că, pentru măști mari, datorită
difuziei, apare un efect de estompare .
c. Timpul mare de procesare.
Cu toate acestea , metoda poate conduce la rezultate bune folosind cantități mici de
informații în jurul măștii, spre deosebire de algoritmii de tipărire a texturii, care necesită o
cantitate mai mare de informații pentru realizarea restaurării (Gong, et al. 2019) .
Algoritmul de sinteză a texturilor propus de Efros și Leung a reușit să aducă
rezultate foarte impresionante, deși, spre deosebire de alte metode, v alorile numerice sunt mai
puțin satisfăcătoare. Această metodă se comportă bine și în cazul structuri lor de imagin e.
Avant ajul algoritmul îmbunătățit este acela că acesta produce o inova ție din punct de vedere al
32
capacității și al dimensiunii un ei porțiuni. Atunci când dimensiunea porțiunii crește , găsirea
celor mai potrivite blocuri devine dificilă (Efros and Leung 1999) . Deși produce rezultate care
impresionează vizual, tehnica aceasta prezintă două dezavantaje :
a. e multe ori rezultă o copie mot -a-mot a exemplarului de intrare.
b. este posibil să producă rezultate incoerente care nu se pot recupera. (Efros and Leung
1999, Aguerrebere, Gousseau and Tartavel 2013)
În ceea ce privește restaurarea texturii și a structurii unei imagini, algoritmul lui
Criminisi este cel mai reprezentiv și creativ dintre aceastea (Criminisi, et al. 2004, Gong, et al.
2019) . Acesta determină secvențele inpainting -ului potrivit valorilor funcțiilor de prioritate,
valoare care este determinată de termenul de încredere și de termenul de date (funcția de
structură) a porțiunii de imagine. În final, acesta găsește blocul optim di n partea cunoscută a
imaginii potrivit criteriilor și apdatează blocul de pixeli care va fi reparat cu informații din
blocul optim până când toată zona deteriorată este reparată. Spre deosebire de algoritmul lui
Efros și Leung, restaurarea este efectuată b loc cu bloc, ceea ce duce la reducerea timpului de
procesare.
Avantajul principal al este că metoda conservă structurile liniare. Un alt avantaj îl
reprezintă eficiența algoritmului dar și timpul scurt de rulare.
Dezavantaj ele metodei apar atunci când s e aleg blocuri prea mari pentru replicare,
deoarece informațiile inadecvate pot fi copiate în interiorul zonei blocate. Caliatea rezultatelor
depinde în mare măsură de acest parametru, dar și de contextul furnizat prin intermediul unui
al doilea parametru care specifică lățimea de bandă a sursei.
33
Capitolul 4. Aplicații
În acest capitol se prezintă aplicația lucrării . Aceasta constă în reproducerea
algoritmul ui de eliminare a obiectelor al lui Criminisi . Programul utilizat pentru scrierea ,
compilarea și executarea codului este MATLAB, versiunea R2015 a. Mai departe se vor descrie
pașii algoritmului, aceștia fiind următorii:
1. Inițializarea manuală a zonei țintă, se introduce imaginea și se extrage conturul 𝛿𝛺
din zona ce va fi restaurată.
2. Calcularea priorității tutoror pixe lilor cu ajutorul formulei ( 27) și calcul ul blocului
cu prioritatea cea mai mare.
3. Căutarea unei imagini similare ca exemplu 𝛹𝑞̂ din regiunea sursă 𝛷, actualizarea
informației necunoscute conform informației, unde 𝛹𝑞̂ este determinat de formula
(29) al cărui SSD prin regiunea cunoscută este minimum.
4. Se actualizează informația în care conturul 𝛿𝛺 al regiunii țintă 𝛺 și cerințele cerute
de informație pentru calcularea umplerii priorităților.
5. Algoritmul se repetă până când zona țintă 𝛺=∅, apoi programul va ieși din buclă
iar procesul de inpainting va fi complet .
Pentru a porni spre implementarea programului, este necesară alegerea unei imagini și
configurarea și selectarea măștii.
4.1 Selectarea imaginii și configurarea măștii
Selectarea imaginii
Primul pas al îl reprezintă selectarea unei imagini. Se recomandă ca imaginea selectată
să fie cu extensi a ”.bmp ” (BITMAP) pentru o rulare mai bună a programului și pentru a nu
întâmpina erori după compilare .
Figura 4 1 Imaginea originală
34
Configurarea măștii
Al doilea pas este reprezentat de configurarea măștii. Configurarea acesteia a fost
făcută cu ajutorul programului Paint . Se selectează zona care se dorește a fi eliminată (sub
orice formă dorită sau cu orice culoare dorită) și astfel se creează masca.
Figura 4 2 Masca
4.2 Descrierea programului
Programul principal
Programul conține un script principal în care se citește imaginea care se dorește a fi
restaurată și masca . Pentru configurarea măștii, utilizatorul selectează zona care se va
eliminea din imagine prin conturarea acesteia (vezi figura 5.2) . După alegerea celor două
imagini se apelează funcția care conține tot algoritmul de inpainting prin apăsarea butonului
”Run” din MATLAB și se așteaptă terminarea execuției programului . După terminarea
execuției, programul va afișa într -o nouă fereastră cele două imagini .În partea din stânga a
ferestrii este afișată imaginea originală, iar în cea din dreapta imaginea restaurată.
Programul principal implementează funcția algoritmului de inpainting. Pentru
alcătuirea funcției algoritmului s -au urmat întocmai pașii descriși de Criminisi. El este divizat
în următoarele funcții, după cum urmează:
a. funcția de obținere a blocului deteriorat ;
b. funcția pentru c ăutarea globală a celui mai potrivit bloc ;
c. funcția pentru f ormarea porțiunilor de imagine ;
d. funcția pentru transformarea datel or din indexul imaginii în imagini ;
e. funcția pentru transformarea imaginilor în date index de imagine ;
f. funcția SSD -ului.
35
Algoritmul de inpainting
Funcția algoritmului conține ca date de intrare funcția sistemul SSD și imaginea
restaurată, iar ca date de ieșire imaginea originală, masca și umplerea cu culoare a zonei
eliminate.
Algoritmul se execută astfel:
Pasul 1
Se inițializează o altă imagine care preia valorile imaginii originale. Se inițializează
umplerea imag inii cu masca, apoi se transformă în double, ceea ce va reprezenta imaginile
care vor avea nevoie de restaurare. Se inițializează umplerea regiunilor ca fiind o operație de Programul
principal
Programul de
inpainting
Funția de
obținere a
blocului
Hp
Căutarea
globală
Formarea
porțiunilor
de imagine Index2Ima
gine Imagine2I
ndex SSD
Figura 4 3 Schema algoritmului
36
și-uri logice între egalitatea dintre imagine și umplerea cu culoare pe toate cele trei
coordonate ale imaginii.
Pasul 2
Mai departe, se va inițializa imaginea originala cu imaginea stocată în cod și se va
inițializa funcția care va transforma indexul imaginii în imagine color. Cu ajutorul acestei
funcții se vor afla coordonatele fiecăr ui punct din zona care se dorește a fi eliminată. După
aflarea punctelor, se vor afla valorile liniilor izofote și valorile gradienților pentru aflarea ∇Ip⊥.
Se inițalizează termenul de încredere C și termenul de date D și se trece la un proces care
rulează în buclă care se oprește atunci când toate zonele defecte sunt reparate. Acesastă buclă:
A. caută marginea dintre imagine și zona deteriorată ;
B. calculează valoarea termenului de încredere C conform formulei (9) ,
C. calculează prioritatea P conform formulei (8) ;
D. găsește cel mai larg bloc de priorități în care :
a. inițializează o mărime standard a porțiunii de imagine (9×9) ;
b. se obține blocul de pixeli ce va fi reparat .
E. folos irea căutării global e pentru a găsi cel mai potrivit bloc ;
F. îmbunăt ățește zonei de umplere ;
G. îmbunătățește încreder ea C(p) și a izofotelor ;
H. îmbunătățește valoari le gradientului ;
I. copiază informația din blocul din q în p ;
J. afișează rezultatele finale:
a. afișează în partea din stânga poza originală ;
b. afișează în partea din dreapta poza modificată .
Subfuncții
Algoritmul procesului de inpainting este constitui din 6 funcții:
1. Funcția de obținere a blocului (Hp):
o are ca date de intrare funcția Hp, rândurile matricei și coloanele matricei și
returnează poziția pixelului p;
o obține locația centrului zonei care va fi reparată ;
o execută un for în care se formează o matrice prin expandarea r ândurilor și o
matrice prin expandarea liniilor ;
o obține blocul care va fi reparat .
2. Căutarea globală pentru a se găsi blocul cu cea mai bună potrivire
37
o Returnează cx, cy (dimensiunile imaginii), imaginea, peticul și datele stocate
de funcția care umple cu culoare ;
o stochează datele referitoare dimenisunile imaginii ;
o determină valoarea maximă a zonei de căutare, pornind de la o valoare inițială ;
o calcul ează distan ța dintre blocurile g ăsite și blocurile ce vor fi
reparate folosind un pixel cunoscut ;
o stochează date precum lungimea liniilor și a coloanelor ;
o obține acele ași dimenisuni ca ace le ale blocului ce va fi reparat în imagine ;
o verifică existența unui punct ”rău” care nu se potrivește cu cele ale blocului ce
va fi reparat parcurgând fiecare pixel în parte ;
o ia în considerare doar blocurile care minimizează eroarea, alege blocul care are
cea m ai mică eroare.
3. Formarea p orțiunii de imagine :
o Retunrează liniile , coloanele și lățimea imaginii (cx);
o stochează date precum lungimea liniilor și a coloanelor ;
o inițializează două matrici care au 0 pe toate liniile și pe toate coloanele ;
o se execută un for în care se vor completa cele două matrici ;
o calculează o funcție care înmulțeste (coloanele -1) * cx (lățimea imaginii) +linii.
4. Convertirea datelor din imaginile index în imagin i RGB(color) :
o convertește toate datele din indexul imaginii și le transformă într-o imagine
color ;
o returnează imaginea color.
5. Convertirea imaginilor RGB(color) în imagin i index ate:
o convertește imaginea color transformând datele acesteia în date index ale
imaginii ;
o returnează datele index -ului.
6. SSD-ul de minimizare a erorii :
o se implementează formula ( 30) în căutarea blocurilor cu cele mai mici erori .
38
4.3 Afișare a imaginii restaurate
Odată ce programul termină de executat toți pașii algoritmului, va afișa un rezultat ul
compilării , acesta fiind următorul:
Figura 4 4 Stânga: Imaginea Originală; Dreapta: Imaginea modificată
După cum se poate observa, algrotimul a reușit să înlăture cu succes partea nedorită
din imaginea originală prin completarea în blocul deteriorat a pixelilor din vecinătate, acesta
completând pixel cu pixel . Acesta determină secvențele procesului de inpainting al imaginii
potrivit valorilor funcțiilor de prioritate, valoare care este determinată de termenul de
încredere și de termenul de date a porțiunii de imagine. În final, acesta găsește blocul optim
pentru potrivire din partea cunoscută a imaginii conform criteriilor și apdatează blocul de
pixeli care va fi reparat cu informații din blocul potrivit pentru în locuire până când toată zona
deteriorată este reparată. După executarea codului, se afișează rezultatele compilării , în partea
din stânga fiind ilustrată imaginea originală, iar în partea din dreapta fiind ilustrată imaginea
corectată.
Figura 4 5 Rezutat ul după execuție
39
Conlcluzii
Procesul de inpainting pentru imaginile digitale reprezintă un domeniu foarte
important de cercetare în domeniul de prelucrare al imaginilor . Acest domeniu a captat atenția
foarte multor persoane în anii trecuți. De -a lungul timpului au fost propuse diferite tipuri de
tehnici cu aplicabilitate în restaurare, în eliminarea obicetelor sau sinteza de textură.
În această lucrare s -au prezentat teh nicile și metodele de ”inpainting” folosite pentru
restuararea imaginilor digitale . Datorită avansării în tehnologie, lucrările vechi de restaurare
ale imaginilor au fost înlocuite de restaurarea imaginilor cu ajutorul programelor oferite de
calculator. Im aginile se pot restaura cu ajutorul programelor cum ar fi MATLAB, C++, C,
Photoshop. Pentru a duce la capăt scopul acestei lucrări, s -au detaliat cele mai des întâlnite
tehnici și metode de inpainting și a fost ales un singur algoritm în scopul realizării aplicației.
La baza a cesteia de restaurare a stat algoritmul de înlăturare al obiectelor al lui Criminisi din
anul 2004. Acest algoritm a fost ales deoarece modul îm care acesta completează imaginea
restaurată cu pixelii din vecinătate (zona dintre contu rul situat între imaginea originală și zona
afectată). Prin folosirea acestui algoritm s -a eliminat o parte din imaginea aleasă și a fost
restuarată textura acelei imagini. De asemenea, a fost important să se deterimne parametrii
algoritmului care conduc l a cele mai bune rezultate și selectarea imaginii reprezantative de
testare pentru a furniza informații relevante.
Am rulat acest ă aplicație pe un calculator ce folosește ca sistem de operare
WINDOWS 10 și care are un procesor Intel Dual Core 3.2 GHZ . Pentru execuție a fost
utilizat programul MATLAB, versiunea 2015a. Rulare algoritmului a avut un timp de
execuție de 48,3 secunde, un timp foarte bun comparativ cu alte programe. Din studiile făcute
de experți, cele mai bune rezultate au fost obținute de a lgoritmul lui Bertalmio deoarece
reușeste să restaureze textura imaginii și să elimine zone mari din imagine , algoritmul lui
Criminisi întâmpinând probleme în această situație.
Nu în ultimul rând, în prezent toți algoritmii de inpainting încearcă să restaureze
golurile din imagine cu informațiile despre imagine doar din restul imaginii, numită abordare
la nivel inferior. Din punct de vedere teoretic, dacă un algoritm poate trata bine structura,
textura și coerența, există o șansă bună de a restabili n edetectabil o imagine deteriorată. Cu
toate acestea, odată ce lipsesc piesele semnificative sau cele speciale, rezultatele obținute în
urma procesului de inpainting ar fi reduse dezastruos și ușor de detectat.
40
Glosari de termeni
algoritmul lui Bertalmio 6, 16, 19, 39
algoritmul lui Criminisi 6, 20, 24 , 32, 39
algoritmul lui Efros și Leung 6, 26
CCD (Curbura Condusă de Difuzie) 15
imagini celebre 5
inpainting 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 32, 33, 34, 35, 36, 37, 38, 39,
40
mască 14, 23, 32, 34, 35
metoda clasică a lui Criminisi 20
metoda clasică a lui Efros și Leung 26
metoda actualizată a algoritmului lui Criminisi 24
metoda actualizată a algoritmului lui Efros și Leung 28
metoda picăturilor de ploaie 24
metoda rară 10 14
programul principal 34
porțiune 4, 5, 7, 8, 10, 15, 21, 22, 23, 24, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39
procesul de umplere al metodei lui Criminisi 20, 21
rezultate 15,19, 36, 38
subfuncții 36
tehnici bazate pe Ecuații cu Derivate Parțiale 7, 8
tehnici bazate pe Exemple 7, 8
tehnici bazate pe sinteza de textură 7
tehnici hibride 7, 9
tehnici rapide semi -automate 7, 8
tehnici rare 7, 9
Variația Totală 6, 10, 11, 12, 14, 15, 32
41
Bibliografie
Aguerrebere, C., Y. Gousseau, and G. Tartavel. 2013. “Exemplar -Based Texture Synthesis: the Efros –
Leung Algorithm.” In ISSN 2105 –1232 , Pp: 223 -241. Image Processing On Line.
Bertalmio, M., G. Sapiro, V . Caselles, and C. Ballester. 2000. “Image inpainting.” SIGGRAPH '00.
Pp: 417 -424.
Cheng, J., and Z. Li. 2018. “Markov random field -based image inpainting with direction structure
distribution analysis for maintaining structure coherence.” In Signal Process , Pp: 182 -197.
Southwest Petroleum U niversity.
Criminisi, A., P. Perez, Toyama, and K. 2004. “Region Filling and Object Removal by.” In IEEE
TRANSACTIONS ON IMAGE PROCESSING, VOL. 13, NO. 9 .
Efros, A,, and W. Freeman. 2001. “Image Quilting for Texture Synthesis and Transfer.” ACM
SIGGRAPH 20 01.
Efros, A., and T. Leung. 1999. “Texture Synthesis by Non -parametric Sampling.” IEEE International
Conference on Computer Vision. Corfu. Pp: 1 -6.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.44.14&rep=rep1&type=pdf.
Gong, S., C. Liu, Y. Ji, B. Zhong, and H. Dong. 2019. Advanced Image and Video Processing Using
MATLAB. SPRINGER.
Patel, P., A. Prajapati, and S. Mishra. 2012. “Review of Different Inpainting Algorithms.” International
Journal of Computer Applications (0975 – 8887)Pp: 59.
Song, Y,, and H. Yan. n.d. “Image Inpainting Based on a Novel Criminisi Algorithm.” In (College of
Software Engineering, , Pp: 1 -8. Chengdu Sichuan.
VLAŠÁNEK, MGR. PAVEL. 2014. Inpainting method based on the. UNIVERSITY OF OSTRAVA,
DEPARTMENT OF INFORMATICS AND COMPUTERS.
Vreja, R., and R, Brad. 2014. “Image Inpainting Methods Evaluation and Improvement.” In Scientific
World Journal .
Yamauchi, H., J. Haber, and Hans -Peter Seidel. n.d. Image Restoration using M ultiresolution Texture
Synthesis and Image Inpainting. Saarbrücken, Germany: Max -Planck -Institut fur Informatik.
Ying, H., L. Kai, and Y. Ming. 2017. “An Improved Image Inpainting Algorithm based on Image
Segmentation.” International Congress of Informatio n and Communication Technology (ICICT
2017). Pp: 796 -801.
Yoo, S., and R. -H. Park. 2009. "Red -Eye Detection and Correction Using Inpainting in Digital
Photographs." In IEE Transactions on Consumer Electronics, Vol. 55, No. 3 .
https://www.researchgate.net/p rofile/Seunghwan_Yoo/publication/224599680_Red –
Eye_Detection_and_Correction_Using_Inpainting_in_Digital_Photographs/links/54ef6d580cf
2432ba656b340/Red -Eye-Detection -and-Correction -Using -Inpainting -in-Digital –
Photographs.pdf.
Zhu, Y., H. Wang, Y. Jin, D. Wu , and L. Zhou. 2006. Texture synthesis for repairing damaged images.
US Parent.
42
Anexe
Termeni folosiți
Algoritm Metodă sau procedură de calcul alcătuită din pași elementari
pentru rezolvarea unei probleme. De obicei algoritmii se implementează în mod concret prin
programarea adecvată a unui calculator.
Culoarea Se datorează spectrului de lumină. Voi folosi o combinație de
canale de culoare de 8 biți, R fiind roșu, G fiind verde și B albastru. Această metodă de culoare
se numește sistemul RGB. Fiecare canal al sistemului conține cantitatea de culoare specificată
de la scara 0 la 255. Cea mai strălucitoare culoare roșie este ( 255; 0; 0 ); cel mai strălucitoare
culoare de verde este( 0; 255; 0), iar cea mai strălucitoare culoare de albastru este ( 0; 0; 255 ).
Apoi avem culorile secundare, cum ar fi cyan (0; 255; 0), magenda ( 255; 0; 255 ) și galben ( 255;
255; 0 ).
Deteriorare Am distins patru tipuri de deteriorare ale imaginilor:
1) zgomot, 2) măzgălituri , 3) găuri , 4) text .
0 2 Diferite tipuri de deteriorare ale imaginilor
1) corespunde imaginile zgomotoase,
2) corespunde imaginilor cu măzgălituri,
3) corepunde imaginilor cu găuri mari care trebuiesc umplute,
4) corespunde imaginilor al căror text se dorește a fi eliminat.
Imaginea digitală Imaginea digi tală = o aplicație f:1,𝑚 𝑥 1,𝑛 →𝐷,
unde D reprezintă domeniul de culoare, 1,𝑚 reprezintă numărul de linii iar 1,𝑛 numărul de
coloane.
D se poate reprezenta astfel:
1. Pentru imaginea binară: {0,1}(0-negru, 1-alb),
2. Pentru imaginea în niveluri de gri(monocromă):
▪ {0,1, …, 255}, (0-negru, 255-alb),
43
3. Pentru imaginea color.
0×255̅̅̅̅̅̅̅̅̅̅,0×255̅̅̅̅̅̅̅̅̅̅,0×255̅̅̅̅̅̅̅̅̅̅
R G B
Lena Imaginea Lenei S öderberg reprezentată în figura 0.1 des utilizată
ca exemplu în grafica pe calculator.
Figura 0.1 Lena Söderberg
Linii izofote Linii de intensitate constantă.
Masca O imagine binară de aceeași dimensiune cu imaginea deteriorată.
Pixelii din prima culoare indică zona deteriorată, iar cei din a doua culoare indicp zona
nedeteriorată. Funcția caract eristică a imaginii Ω este masca 𝑚Ω.
Microsoft Paint Program care se utilizează pentru crearea desenelor și editarea
simplă a imaginilor.
PCA Analiza Componentelor Principale este o procedură statistică ce
folosește o transformarea ortogonală pentru a converti un set de posibile variablile corelate într –
un set de valori liniare necorelate numite valori principale. Dacă există n observații cu p număr
de variabile, atun ci numărul componentelor distincte principale este 𝑚𝑖𝑛(𝑛−1,𝑝). Această
transformare este definită în așa fel încât prima componentă principală să aibă cea mai mare
varianță posibilă, adică contabilizează cât mai mult din variabila datelor, și fiecare componentă
succesivă are la rândul ei cea mai mare varianță posibilă sub constrângerea că este ortogonală
față de componentele precedente.
Pixelul Cea mai mică parte a imaginii. Fiecare pixel are coordonatele (i,j)
și culoare/intensitate. Pentru imaginile monocrome (i, j , γ), unde γ reprezintă nivelul de gri;
pentru imaginile color (i, j, r, g, b).
Octetul Unitate de informații care constă din 8 biți.
SSD Sum of Squared Differences (Suma Diferențelor pătrat e)
44
Codul aplicației
a. Programul principal ;
clc;
clear;
imag ineOriginala =imread('lena.bmp');
masca=imread('mask.bmp');
umplereaCulorii =[255;255;0];
[ssd,imagineaRestaurata]=algoritm_Inpainting(imagineOriginala,masca,umplereaCulorii)
b. Algoritmul de inpainting;
Function
[ssd,imagineaRestaurata]=algoritm_Inpainting(imagineOriginala,masca,umplereaCulorii)
Imagine0=imagineOriginala;
umplereaImaginii=masca;
Imagine=double(umplereaImaginii);
umplereaRegiunii=Imagine(:,:,1)==umplereaCulorii(1)&Imagine(:,:,2)==umplereaCul
orii(2)&Imagine(:,:,3)==umplereaCulorii(3);
origImagine=Imagine;
ind=Imagine2ind(Imagine);
in=ind;
[A,BB]=find(in);
sz=[size(Imagine,1) size(Imagine,2)];
s1=size(Imagine,1);
s2=size(Imagine,2);
regiuneaSursa=~umplereaRegiunii;
%Cautarea valorii izofotelor
[Ix(:,:,3),Iy(:,:,3)]=gradient(Imagine(:,:,3));
[Ix(:,:,2),Iy(:,:,2)]=gradient(Imagine(:,:,2));
[Ix(:,:,1),Iy(:,:,1)]=gradient(Imagine(:,:,1));
Ix=sum(Ix,3)/(3*255);Iy=sum(I y,3)/(3*255);
temp=Ix; Ix= -Iy;Iy=temp; %Rotatia la 90 de grade
%––––––
%Calcularea valorii gradientului
[ix(:,:,3),iy(:,:,3)]=gradient(Imagine(:,:,3));
45
[ix(:,:,2),iy(:,:,2)]=gradient(Imagine(:,:,2));
[ix(:,:,1),iy(:,:,1)]=gradient(Imagine(:,:,1 ));
ix=sum(ix,3)/(3*255); iy=sum(iy,3)/(3*255);
%––––––––––
%Initializarea termenului de incredere C si a termenului de data D
C=double(regiuneaSursa);
D=repmat( -.1,sz);
%Procesul de inpainting(are loc pana când toate zonele defecte sun te reparate)
while any(umplereaRegiunii(:))
%căutarea zonei
dR=find(conv2(double(umplereaRegiunii),[1,1,1;1, -8,1;1,1,1], 'same' )>0);
[Nx,Ny]=gradient(double(~umplereaRegiunii));
N=[Nx(dR(:)) Ny(dR(:))];
N(~isfinite(N))=0;
%calcula rea valorii termenului de încredere
for k=dR'
Hp=functia_Hp(sz,k);
q=Hp(~(umplereaRegiunii(Hp)));
C(k)=sum(C(q))/numel(Hp);
end
%calcularea priopritatii
D(dR)=abs(Ix(dR).*N(:,1)+Iy(dR).*N(:,2))/255;
prioritati=C(dR).*D(dR);
%Gasirea blocului larg de prioritati Hp
[unuse d,ndx]= max(prioritati(:));
p=dR(ndx(1));
%––––-
[Hp,randuri,coloane]=functia_Hp(sz,p); %marimea este de 9×9
pentruUmplere=umplereaRegiunii(Hp);
peticulW=Imagine(randuri,coloane,:); % Obtinerea blocului ce va fi reparat
%––––––
%Folosirea cautarii globale pentru a gasi cea mai buna potrivire a blocului
Hq=intreagaPotrivire(s1,s2,Imagine,peticulW,umplereaCulorii);
%–––––––
%Imbunatatirea zonei de umplere
46
umplereaRegiunii(Hp(pentruUmplere))=false;
%Imbunatatirea valori i C(p) si valorii izofotelor
C(Hp(pentruUmplere))=C(p);
Ix(Hp(pentruUmplere))=Ix(Hq(pentruUmplere));
Iy(Hp(pentruUmplere))=Iy(Hq(pentruUmplere));
%–––––––-
%Imbunatatirea valorii gradientului
ix(Hp(pentruUmplere))=ix(Hq(pentruUmplere));
iy(Hp(pentruUmplere))=iy(Hq(pentruUmplere));
%––––––––––
%Copierea informatiei de imagine din Hq in Hp
ind(Hp(pentruUmplere))=ind(Hq(pentruUmplere));
Imagine(randuri,coloane,:)=ind2Imagine(ind(randuri,coloane),origImagine);
imaginea Restaurata=Imagine;
A=double(Imagine0);
B=double(imagineaRestaurata);
ssd=SSD(A,B);
imagineaRestaurata=uint8(imagineaRestaurata);
subplot(1,2,1);
imshow( 'imagine1.bmp' );
title( 'Imaginea originala' );
subplot(1,2,2);
imshow(imagineaRestaurata);
title( 'Imaginea corectata' );
end
end
c. Funcția de obținere a blocului ;
function [Hp,randuri,coloane]=functia_Hp(sz,p)
x=floor(rem(p,sz(1)));
y=floor(p/sz(1))+1; %Ob ținerea loca ției punctului din centrul zonei ce va fi reparată
w=4;
randuri=max(1,x -w):min(x+w,sz(1));
47
coloane=max(1,y -w):min(y+w,sz(2));
lungRanduri=length(randuri);
lungColoane=length(coloane);
KL=zeros(lungRanduri,lungColoane);
LK=zeros(lungRanduri,lungColoane);
for ii=1:lungColoane
KL(:,ii)=randuri; %matrice format ă prin expandarea liniilor
end
for jj=1:lungRanduri
LK(jj,:)=coloane; %matrice formata prin expandarea coloanelor
end
Hp=(LK -1)*sz(1)+KL; %Obtinerea blocului care urmeaz ă să fie reparat
end
d. Funcția pentru căutarea globală a celui mai potrivit bloc;
%Căutare a global ă care caut ă cea mai bun ă potrivire a blocurilor
function Blocul=intreagaPotrivire(cx,cy,Imagine,peticulW,umplereaCulorii)
%cx si cy sunt marimea imaginii
aa=size(peticulW,1);
bb=size(peticulW,2);
ax=cx -aa+1;
ay=cy -bb+1; % Determini narea valoar ii maxim e a ariei de căutare
toti=aa*bb;
minim=1.0000e+10; %Valoarea initial ă
%Calcularea distan ței dintre blocurile g ăsite și blocurile ce vor fi
%reparate după pixel cunoscut
for i=1:ax
for j=1:ay
peticulM=Imagine(i:i+aa -1,j:j+bb -1,:);%Ob ținerea aceleia și dimensiuni
pentru blocul ce va fi reparat in imagine
posunme=peticulM(:,:,1)==umplereaCulorii(1)&peticulM(:,:,2)==umpl
ereaCulorii(2)&peticulM(:,:,3)==umplereaCulorii(3);
48
if any(posunme(:))
continue ;
end
Eroare=0;
for ff=1:aa*bb
pf=peticulW(ff)==umplereaCulorii(1)&peticulW(ff+toti)==ump
lereaCulorii(2)&peticulW(ff+2*toti)==umplereaCulorii(3);
if pf
continue ;
end
petic=peticulW(ff) -peticulM(ff);Eroare=Eroare+petic*petic;
petic=peticulW(ff+toti) -peticulM(ff+toti);Eroare=Eroare+pet ic*petic;
petic=peticulW(ff+2*toti) –
peticulM(ff+2*toti);Eroare=Eroare+petic*petic;
end
if Eroare<minim
minim=Eroare;
hk=i;
lk=j;
end
end
end
randuri=hk:hk+aa -1;
coloane=lk:lk+bb -1;
Blocul=peticulFormat(randuri,coloane,cx);
end
e. Funcția pentru formarea porțiunilor de imagine;
function randuri_coloane=peticulFormat(randuri,coloane,cx)
49
lungRanduri=length(randuri);
lungColoane=length(coloane);
KL=zeros(lungRanduri,lungColoane);
LK=zeros(lungRanduri,lungColoane);
for ii=1:lungColoane
KL(:,ii)=randuri;
end
for jj=1:lungRanduri
LK(jj,:)=coloane
end
randuri_coloane=(LK -1)*cx+KL;
end
f. Funcția pentru transformarea imiginilor indexate în imagini
function Imagine2 = ind2Imagine(ind,Imagine)
for i=3:-1:1
temp=Imagine(:,:,i);
Imagine2(:,:,i)=temp(ind);
end
end
g. Funcția pentru transformarea imaginilor in imagini indexate;
function ind=Imagine2ind(Imagine)
s=size(Imagine); ind=reshape(1:s(1)*s(2),s(1),s(2));
end
h. Funcția SSD -ului
function SSD=SSD(u,h)
[m,n]=size(u(:,:,1));
50
a=0;
for i=1:m
for j=1:n
h(i,j,1)=u(i,j,1) -h(i,j,1);
a=a+h(i,j,1)^2;
end
end
msc=a/(m*n);
SSD_R=10*log10(255^2/msc);
b=0;
for i=1:m
for j=1:n
h(i,j,2)=u(i,j,2) -h(i,j,2);
b=b+h(i,j,2)^2;
end
end
msc=b/(m*n);
SSD_G=10*log10(255^2/msc);
c=0;
for i=1:m
for j=1:n
h(i,j,3)=u(i,j,3) -h(i,j,3);
c=c+h(i,j,3)^2;
end
end
msc=c/(m*n);
SSD_B=10*log10(255^2/msc);
SSD=(SSD_R+SSD_G+SSD_B)/3;
end
51
Comenzi MATLAB folosite
abs(A) Returnează valoarea absolută a fiecărui element din matricea A. Dacă A
este complexă, atunci se va returna magnitudinea complexă.
double(im agine ) Convertește valorile din imagine în valori cu dublă precizie.
clc Clear Command Window: Golește tot textul din linia de comandă
eliberând ecranul.
find(A) Returnează un vector care conține indicii liniari ai fiecărui element nenul
din matricea A.
floor(A) Rotunjește fiecare element al lui X la cel mai apropiat număr întreg mai
mic sau egal cu acel element.
gradient(A) Returnează gradientrul numeric unidime nsional al vectorului A.
imread(” *.bmp ”) Citește imaginea din fișierul specificat de numele fișierului ( *),
precizându -se și formatul acesteia.
imshow(A) Afișează imaginea A în niveluri de gri într -o figură.
length( A) Returnează lungimea lui A.
max( A, B) Retunrează o matrice cu cele mai mari elemente luate din A sau B.
min(A, B) Retur nează o matrice cu cele mai mici elemente luate din A sau B.
numel(A) Returnează numărul de elemente n din matricea A.
rem(a, b) Returnează restul împărțirii numărului a la numărul b.
repmat(A, n) Returnează o matrice care conține n copii ale lui a pe dimensiunile
rândurilor și coloanelor. Noua matrice va avea dimensiunea 𝐴∙𝑛.
reshape(A, sz) Redimensionează matricea A folosindu -se de vectorul mărime, sz, pentru
a defini dimensiunea( B).
size(A) Returnează un vector linie ale cărui elemente conțin lungimea
corespunzătoare dimensiuneii matricei A.
subplot(a,b,c) Această comandă divizează figura curentă într -o grilă de mărime a pe c
și crează axe în poziția specificată de c. Primul reprezentare gra fică se află situată pe prima linie
52
de pe prima coloană, a doua reprezentare este situată pe a doua coloană a primei linii și așa mai
departe.
sum(A) Returnează un vector linie care conține suma fiecărei coloane în parte a
matricei A.
temp Creează un fișier temporar.
uint8(A) Convertește toate valorile din A în valori de tin uint8.
zeros(A, B, …, Z) Returnează o matrice A × B × …× Z cu toate elementele 0 unde A, B, …,
Z indică mărimea fiecărei dimensiuni.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Programul de studii: Matematica și Informatică Aplicată în Inginerie [628057] (ID: 628057)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
