Capitolul 1. Caracteristici aplicații și tehnologii web 3 1.1 Introducere 3 1.2 Prezentare generală 3 1.3 Componentele principale ale aplicațiilor… [609553]

UNIVERSITATEA „BABE
Ș
-BOLYAI”

FACULTATEA DE MATEMATICǍ
Ș
I INFORMATICǍ

SPECIALIZAREA INFORMATICǍ

Lucrare de diplomă

Eliminarea unui obiect nedorit
 
dintr-o imagine

Conducător științific
 
Absolvent: [anonimizat]. dr. ​
Vasile Prejmerean​
Rus
 
Cristian-Vlad

Cluj-Napoca

2018

1

CUPRINS
 
Capitolul 1. Caracteristici aplicații și tehnologii web
3
 
1.1 Introducere
3
 
1.2 Prezentare generală
3
 
1.3 Componentele principale ale aplicațiilor web
4
 
1.3.1 Redactarea documentelor web – HTML
4
 
1.3.2 Protocolul HTTP
6
 
1.3.3 Limbajul JavaScript
8
 
Capitolul 2. Dezvoltarea aplicațiilor Web
10
 
2.1 Prezentare generală
10
 
2.2 Avantaje și dezavantaje în dezvoltarea aplicațiilor web
10
 
2.3 Arhitectura unei aplicații web
12
 
2.3.1 Avantaje și constrângeri ale arhitecturii aplicațiilor
12
 
2.4 Construcția și implementarea unei aplicației web la nivel funcțional
12
 
Capitolul 3. Eliminarea unui obiect nedorit
15
 
3.1 Introducere
15
 
3.2 Detectarea conturului – Contur activ
15
 
3.2.1 Contururi active geodezice morfologice(MorphGAC)
15
 
3.2.2 Contururi active fără margine(MorphACWE)
15
 
3.3 Image inpainting (umplerea spatiului sters)
15
 
Capitolul 4. Aplicație
15
 
Capitolul 5. Concluzii
15

2

1.
Capitolul 1. Caracteristici ale aplicațiilor și tehnologiilor web
 
1.1 Introducere

Termenul
“web”
este
o
prescurtare
ce
provine
de
la
termenul
World
Wide
Web

(WWW)
ș
i
reprezintă
totalitatea
informa
ț
iilor
compuse
din
struc turi
de
tip
hipertext(html)
ș
i

alte
tipuri
de
resurse
imagini,
videoclipuri…
sunt
legate
între
ele.
Acestea
pot
fi
utilizate
ș
i

accesate
cu
ajutorul
internetului,
pot
fi
stocate
în
diferite
loca
ț
ii,
în
diverse
dispozitive
,
fiind

accesate printr-o denumire sau identificator unic numit URL(uniform resource locators).

Aceste
structuri
de
tip
hipertext
sunt
randate
ș
i
afi
ș
ate
cu
ajutorul
programelor
de

navigare dezvoltate de-a lungul timpului, numite navigatoare web(browser).

1.2 Prezentare generală
 
Principalele
tehnologii
ce
au
la
bază
dezvoltarea
unei
aplicații
web
sunt

formate
din:

HTTP

reprezintă
protocolul
folosit
transferul
de
informații
și
resurse
la

nivelul
aplicațiilor
și
limbajul
folosit
pentru
scriere
informațiilor
de
tip
hipertext,

numit ​
HTML​
.
 
Cele
doua
tehnologii
principale
menționate
mai
sus,
permit
dezvoltarea

aplicațiilor
de
tip
web,
însă
nu
sunt
în
totalitate
suficiente
pentru
dezvoltarea
unor

aplicații
complexe
sau
mai
avansate.
Au
apărut
diverse
limbaje
de
programare
și

criptare
a
informațiilor
care
conlucrează
cu
aceste
două
tehnologii
și
au
ca
rol

principal
folosirea
ultimelor
tehnologii
existente
în
materie
de
aplicații
web.
Printre

acestea
sunt
de
luat
în
considerare
limbajele
de
programare
ce
sunt
utilizate
atât
la

nivel
de
funcționalitate
(PHP)
cât
și
la
nivel
de
interfața
cu
utilizatorul
(JavaScript,

jQuery),
limbaje
ce
vor
fi
prezentate
în
capitolele
ce
urmează.
De
asemenea,
o

întrepătrundere
utilizabilă
în
aplicațiile
web
este
realizată
la
nivelul
modalităților
și
 
 
 
 
 
 
 
 
 
 
 
procesului
de
afișare
a
informațiilor
existente
în
paginile
web,
incluzând
interfața
cu
 
 
 
 
 
 
 
 
 
 
 
 
utilizatorul,
modalitate
ce
se
realizează
cu
ajutorul
unui
limbaj
de
stil
(en:
“style
 
 
 
 
 
 
 
 
 
 
 
 
 
language”)
numit
CSS
(“Cascading
Style
Sheets”),
subiect
ce
va
fi
tratat
și
prezentat
de
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3

asemenea în următoarele capitole.
 

1.3 Componentele principale ale aplicațiilor web
 
Componentele
principale
ale
aplicațiilor
web
sunt
formate
din
cele
două
 
 
 
 
 
 
 
 
 
 
tehnologii
precizate
mai
sus,
și
anume:
HTTP
și
HTML.
Pentru
dezvoltarea
unei
 
 
 
 
 
 
 
 
 
 
 
 
aplicații
web
simple
sunt
suficiente
doar
aceste
două,
însă
pentru
aplicații
complexe
 
 
 
 
 
 
 
 
 
 
 
 
apar întrepătrunderea mai multor limbaje de programare, scripting și de stilizare.
 
 
1.3.1 Redactarea documentelor web – HTML
 
Componentele
principale
ale
aplicațiilor
web
sunt
formate
din
cele
două
 
 
 
 
 
 
 
 
 
 
tehnologii
precizate
mai
sus,
și
anume:
HTTP
și
HTML.
Pentru
dezvoltarea
unei
 
 
 
 
 
 
 
 
 
 
 
 
aplicații
web
simple
sunt
suficiente
doar
aceste
două,
însă
pentru
aplicații
complexe
 
 
 
 
 
 
 
 
 
 
 
 
apar întrepătrunderea mai multor limbaje de programare, scripting și de stilizare.
 
 
 
Fișierele
HTML
(​
H​
yper​
T​
ext

M​
arkUp

L​
anguage)
sunt
formate
și
alcătuite
 
 
 
 
 
 
 
 
 
dintr-un
limbaj
de
marcare
(limbaj
hipertextual)
ce
are
la
bază
un
stil
de
compoziție
 
 
 
 
 
 
 
 
 
 
 
 
 
 
numit

markup​
.
Acest
tip
de
fișier
markup,
se
referă
la
o
secventă
de
caractere
sau
alte
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
simboluri
special
numite
etichete
sau
taguri,
ce
sunt
inserate
la
nivelul
unui
text
 
 
 
 
 
 
 
 
 
 
 
 
 
pentru
a
putea
fi
ulterior
randate
într-un
mod
diferit.
Randarea
diferită
poate
fi
 
 
 
 
 
 
 
 
 
 
 
 
 
realizată
la
nivelul
fontului
textului,
culoarea,
dimensiunea
sau
poziția.
Modificarea
 
 
 
 
 
 
 
 
 
 
textelor
de
tip
HTML
se
realizează
cu
orice
editor
de
text
cunoscut
(exemplu:
Notepad,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Notepad++,
SublimeText),
însă
randarea
conținutului
acestor
tip
de
fișiere
se
 
 
 
 
 
 
 
 
 
 
realizează cu ajutorul browserelor.
 
Din
punct
de
vedere
sintactic,
tag-urile
de
tip
HTML
sunt
reprezentate
ca
fiind
 
 
 
 
 
 
 
 
 
 
 
 
 
simboluri
sugestive
delimitate
de
paranteze
unghiulare
(<
,
>).
Etichetele
sunt
folosite
 
 
 
 
 
 
 
 
 
 
 
 
cel
mai
des
cu
perechi,
având
ca
rol
delimitarea
unei
porțiuni
de
text
ce
primește
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
proprietatea
respectivă.
Prin
urmare,
textul
ce
primește
o
proprietate
va
fi
încadrat
 
 
 
 
 
 
 
 
 
 
 
 
intre
o
eticheta
de
start
la
început
și
o
etichetă
de
final
la
final,
etichetă
ce
va
avea
în
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plus
fata
de
cea
inițiala
simbolul
“/”.
De
exemplu,
eticheta
de
început
<b>
are
eticheta
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
caracteristică de final “</b>”.
 
Având
în
vedere
evoluția
în
timp
a
fișierelor
de
tip
HTML,
s-a
constat
un
 
 
 
 
 
 
 
 
 
 
 
 
 
 
progres
imens
la
nivel
de
dezvoltare
și
interpretare
a
acestora.
Astfel
că,
dacă
la
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4

începutul
apariției
fișierelor
de
tip
HTML,
se
foloseau
etichete
simple
care
în
 
 
 
 
 
 
 
 
 
 
 
 
combinație
ofereau
rezultatul
dorit,
acum
limbajul
de
markup
s-a
dezvoltat
(HTML
5),
 
 
 
 
 
 
 
 
 
 
 
 
oferind
utilizatorilor
și
dezvoltatorilor
posibilități
ce
duc
la
o
muncă
mai
ușoară
și
mai
 
 
 
 
 
 
 
 
 
 
 
 
 
 
plăcută.
Astfel,
s-au
introdus
diferite
tag-uri
noi
care
oferă
au
aceeași
funcționalitate
 
 
 
 
 
 
 
 
 
 
 
 
cu
o
combinație
mult
mai
complicată
de
etichete
din
versiunile
anterioare,
având
ca
 
 
 
 
 
 
 
 
 
 
 
 
 
scop dezvoltarea unor aplicații web cât mai complexe.
 
Pentru
a
oferi
aplicațiilor
web
o
structură
cât
mai
interactivă
s-a
introdus
 
 
 
 
 
 
 
 
 
 
 
 
includerea
sau
inserarea
unor
asa-numite

scripturi

(doar
în
partea
de
client)
ce
se
vor
 
 
 
 
 
 
 
 
 
 
 
 
 
 
executa
la
încărcarea
browserului
sau
la
aplicarea
unui
eveniment
pe
pagina.
Cel
mai
 
 
 
 
 
 
 
 
 
 
 
 
 
des
folosit
limbaj
de
scripting
este
bine-cunoscutul

JavaScript

care
pentru
inserarea
în
 
 
 
 
 
 
 
 
 
 
 
 
cadrul
fișierelor
de
tip
HTML
se
vor
folosi
etichetele
de
tip:
<script></script>
ce
vor
fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
incluse
în
partea
de
început
a
documentului,
în
<head>.
De
asemenea
ele
pot
fi
incluse
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
și
în
<body>,
însă
diferența
fata
de
includerea
lor
în
tag-ul
de
<head>
unde
ele
vor
fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
apelate
doar
la
acțiunea
unui
eveniment,
este

ele
vor
fi
executate
la
încărcarea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
paginii web a browserului.
 
Odată
cu
apariția
versiunii
HTML
4,
este
introdusă
și
proprietatea
de
stilizare
a
 
 
 
 
 
 
 
 
 
 
 
 
 
documentelor/etichetelor
de
tip
html
printr-un
nou
tip
de
limbaj
de
stil,
numit
CSS
 
 
 
 
 
 
 
 
 
 
 
 
 
(​
Cascade
Style
Sheet​
).
Datorită
proprietăților
sale,
conține
un
set
de
reguli
și
proprietăți
 
 
 
 
 
 
 
 
 
 
 
 
 
care vor dicta browserului cum vor fi afișate etichetele de tip html.
 

5

1.3.2 Protocolul HTTP
 
Protocolul
HTTP
(​
H​
yper​
T​
ext

T​
ransfer

P​
rotocol)
reprezintă
metoda
cea
mai
des
 
 
 
 
 
 
 
 
 
 
utilizată
ce
are
ca
scop
accesarea
informațiilor
ce
sunt
memorate
pe
servere
de
tip
 
 
 
 
 
 
 
 
 
 
 
 
 
 
World
Wide
Web
(WWW).
HTTP
reprezintă
protocolul
implicit
al
aplicațiilor
web,
 
 
 
 
 
 
 
 
 
 
 
ceea
ce
înseamnă
că,
în
cazul
accesării
unei
aplicații
web
nu
este
trecut
protocolul
http
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
în
textul
de
accesare
URL
(www.exemplu.ro),
atunci
acesta
este
luat
ca
implicit.
De
 
 
 
 
 
 
 
 
 
 
 
 
 
1
asemenea,
HTTP
presupune

pe
dispozitivul
electronic
ce
are
rolul
de
“destinație”
 
 
 
 
 
 
 
 
 
 
 
 
rulează
un
program
care
înțelege
protocolul.
Fișierele
transmise
la
destinație
pot
fi
 
 
 
 
 
 
 
 
 
 
 
 
documente
HTML,
fișiere
grafice,
fișiere
de
sunete,
animație
sau
video,
un
program
de
 
 
 
 
 
 
 
 
 
 
 
 
 
tip executabil pe server-ul respective sau un editor de text.
 
Protocolul
HTTP
este
crat
cu
scopul
de
a
realiza
schimburi,
într-un
mod
 
 
 
 
 
 
 
 
 
 
 
 
distribuit,
în
internet
și
drept
urmare
exploatează
un
sistem
standard
de
adresare
a
 
 
 
 
 
 
 
 
 
 
 
 
 
resurselor. Resursele HTTP sunt identificate prin URL, având următorul format:
 
http: // <host> [:port] [<path> [? <query>]]
 
Modul de funcționare​

este dat prin tehnica de comunicare prin care paginile
 
web sunt transmise de la un calculator la altul, aflate la o distanță oarecare unul față de
 
celălalt. Ca prim pas, este accesat un URL (ex: http://www.exemplu.ro) prin care se
 
cere afișarea unor informații de tip html. Ca proces principal, în primă fază numele
 
URL-ului este convertit de protocolul DNS într-o adresă IP. Cu ajutorul protocolului
 
TCP (​
Transmission Control Protocol)​
pe portul standard 80 al serverului HTTP, este
 
transmisă informația cerută. Răspunsul returnat poate să conțină informații aleatoare
 
cu privire la cererea realizată inițial (Figura 1.1). Informațiile se pot structura în
 
informații ce țin de browserul de pe care a fost făcuta cererea, parametrii, etc.
 
 
 
 
Figura 1.1​
– Comunicare protocol
 
HTTP între client și server
 
 
1
U R L

– reprezintă un localizator uniform de resurse
ș
i reprezintă o secven
ț
ă de caractere folosită în

denumirea, localizarea
ș
i identificarea unor resurse sau pagini în Internet.

6

Câteva
aspecte
de
precizat
necesare
asupra
protocolului
HTTP,
aspecte
ce
au
 
 
 
 
 
 
 
 
 
 
 
stat la baza dezvoltării aplicațiilor de tip web de-a lungul timpului:
 

Interacțiunea
între
client
și
server
are
loc
doar
în
momentul
în
care
clientul
 
 
 
 
 
 
 
 
 
 
 
 
 
solicită
serverul,
prin
urmare
nu
exista
niciun
mod
prin
care
serverul
poate
 
 
 
 
 
 
 
 
 
 
 
 
solicita
din
nou
clientul
(cererea
de
la
client
la
server
poate
fi
considerată
 
 
 
 
 
 
 
 
 
 
 
 
 
unidirecțională).
Astfel,
informarea
clienților
nu
poate
fi
utilizată
decât
 
 
 
 
 
 
 
 
 
doar dacă se folosește protocolul HTTP.
 

Fiecare
cerere
a
unui
client
este
interpretată
și
tratată
de
serverul
web
 
 
 
 
 
 
 
 
 
 
 
 
independent.
Astfel

în
cazul
în
care
un
client
trimite
două
cereri,
serverul
 
 
 
 
 
 
 
 
 
 
 
 
 
va
interpreta
independent,
la
fel
ca
și
cum
ar
veni
cererile
de
la
doi
clienți
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
diferiți.
 

In
cazul
în
care
se
dorește
păstrarea
unui
istoric
asupra
cererilor
și
 
 
 
 
 
 
 
 
 
 
 
 
răspunsurilor
între
un
client
și
un
server,
datorită
proprietăților
 
 
 
 
 
 
 
 
 
protocolului
HTTP,
care
nu
reține
în
niciun
fel
o
“sesiune”
a
unui
client,
va
fi
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nevoie
de
o
implementare
externa,
utilizând
alte
proceduri
de
a
stoca
 
 
 
 
 
 
 
 
 
 
 
informațiile sau sesiunile.
 
1.3.3 Limbajul JavaScript
 
Partea
de
interfață
cu
utilizatorul
reprezintă
un
element
important
în
ziua
de
azi,
când
 
 
 
 
 
 
 
 
 
 
 
 
 
 
aplicațiile
web
se
doresc
cât
mai
funcționale
din
partea
de
client
și
cât
mai
stilizate
din
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
punct de vedere al design-ului.
 
In
ajutorul
acestor
cerințe
apare
noțiunea
de
JavaScript
(JS)
care
reprezintă
un
 
 
 
 
 
 
 
 
 
 
 
 
limbaj
de
programare
pentru
scripting
orientat
obiect
bazat
pe
conceptul
de
 
 
 
 
 
 
 
 
 
 
 
prototipuri.
Acest
limbaj
de
programare
este
este
folosit
în
special
pentru
introducerea
 
 
 
 
 
 
 
 
 
 
 
 
unor
funcționalități
pe
paginile
web,
codul
caracteristic
fiind
rulat
și
interpretat
la
fel
 
 
 
 
 
 
 
 
 
 
 
 
 
ca
și
HTML,
de
către
browser.
Cel
mai
des
este
utilizat
în
aplicațiile
web
pentru
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
validări
ce
țin
de
introducerea
datelor,
crearea
de
meniuri
sau
efecte
animate
ale
unor
 
 
 
 
 
 
 
 
 
 
 
 
 
 
elemente HTML.
 
Modalitatea
de
funcționare
se
bazează
pe
faptul

browserele
rețin
în
memorie
 
 
 
 
 
 
 
 
 
 
 
 
o
copie/imagine
a
unei
pagini
web,
sub
forma
unor
arbori
de
obiecte
ce
ulterior
sunt
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
luate
și
folosite
de
către
scripturile
redactate
în
JavaScript
care
le
pot
citi,
interpreta
și
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
prelucra.
Acest
arbore
de
obiecte
al
paginii
web
este
numit:
Document
Object
Model
 
 
 
 
 
 
 
 
 
 
 
 
 
7

(DOM)
și
este
caracterizat
printr-un
standard
ce
îl
oferă
World
Wide
Web
Consortium
 
 
 
 
 
 
 
 
 
 
 
 
 
pentru
toate
browserele
active
la
ora
actuală,
care
însă
în
practică
este
incomplete
 
 
 
 
 
 
 
 
 
 
 
 
 
implementat.
Există
posibilitatea
prin
care
browserele
randează
în
mod
diferit
codul
 
 
 
 
 
 
 
 
 
 
 
de script, funcționalitatea fiind afectată în cazul rulării pe browsere diferită.
 
Din
punct
de
vedere
al
sintaxei,
codul
JavaScript
seamănă
îndeaproape
cu
codul
 
 
 
 
 
 
 
 
 
 
 
 
limbajului
de
programare
C++.
De
asemenea
acest
limbaj
conține
o
listă
amplă
de
 
 
 
 
 
 
 
 
 
 
 
 
 
funcții
și
comenzi
ce
au
rol

ajute
la
operații
matematice,
manipulări
de
șiruri,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
sunete, imagini, obiecte și ferestre ale browserului, validări de introducere a datelor.
 
Pentru
introducerea
codului
de
tip
JavaScript
în
cadrul
unui
fișier
de
tip
HTML
 
 
 
 
 
 
 
 
 
 
 
 
 
sunt
utilizate
etichetele
speciale,
care
vor
defini
începutul
și
sfârșitul
codului
de
 
 
 
 
 
 
 
 
 
 
 
 
scripting:
 
 
<script type=”text/javascript”> </script>
 
<script language=”JavaScript”> </script>
 
 
Sunt cunoscute câteva proprietăți ale limbajului de scripting JavaScript:
 
JavaScript
reprezintă
un
limbaj
dependent
de
mediu,
astfel
încât
fiind
un
limbaj
de
 
 
 
 
 
 
 
 
 
 
 
 
 
scriptare,
el
rulează
la
nivelul
browserului
fiind
în
totalitate
interpretat
și
rulat
de
 
 
 
 
 
 
 
 
 
 
 
 
 
către
acesta.
Codul
este
în
totalitate
interpretat
de
browser
înainte
de
a
fi
executat.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prin
urmare
nu
necesita
compilări
sau
preprocesări,
ci
rămâne
parte
integrantă
a
 
 
 
 
 
 
 
 
 
 
 
 
documentului
HTML.
Dezavantajul
la
acest
nivel
este
reprezentat
de
faptul

 
 
 
 
 
 
 
 
 
 
 
JavaScript
va
rula
mai
încet
în
comparație
cu
alte
limbaje
de
programare
ce
compun
o
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
aplicație web deoarece codul va fi citit de navigatorul curent pe care este apelat.
 
JavaScript
are
posibilitatea
de
fi
introdus
în
fișiere
format
HTML

majoritatea
 
 
 
 
 
 
 
 
 
 
 
 
obiectelor
JavaScript
au
etichete
HTML
pe
care
le
reprezintă,
astfel
încât
programul
 
 
 
 
 
 
 
 
 
 
 
 
este inclus pe partea de client.
 
JavaScript
este
un
limbaj
ce
se
bazează
pe
obiecte,
modelul
obiect
fiind
bazat
pe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
instanță și nu pe moștenire.
 
Marea
majoritatea
a
codului
scris
în
JavaScript
este
bazat
pe
evenimentele
ce
au
loc
la
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
nivelul
interfeței
cu
utilizatorul
pe
browserul
curent
pe
care
este
folosit.
De
asemenea
 
 
 
 
 
 
 
 
 
 
 
 
 
poate răspunde și la evenimente generate de sistem.
 
Este
un
limbaj
multifuncțional
care
interpretează
și
rezolvă
direct
în
browser
uneori
 
 
 
 
 
 
 
 
 
 
 
 
8

fără
a
mai
fi
nevoie
de
apeluri
către
server.
Un
bun
exemplu
ar
fi
unele
grafice
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
matematice,
operații
matematice,
calculatoare
care
sunt
create
direct
și
randate
direct
 
 
 
 
 
 
 
 
 
 
 
în browser cu ajutorul acestui limbaj.
 
Evoluția
JavaScript
este
foarte
rapidă,
dorindu-se
aducerea
multor
 
 
 
 
 
 
 
 
funcționalități
pe
care
o
aplicație
web
le
realizează
cu
serverul,
pe
partea
de
client
 
 
 
 
 
 
 
 
 
 
 
 
 
 
direct.
De
asemenea
utilizarea
lui
este
din
ce
în
ce
mai
dezvoltată
la
nivelul
multor
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tehnologii.
 
O
dezvoltare
și
o
extindere
de
tip
JavaScript
este
binecunoscută
în
 
 
 
 
 
 
 
 
 
 
 
limbajele create având la bază acest limbaj de scripting: AJAX
și jQuery
.
 
2
3

2
AJAX​
– reprezinta un grup de tehnologii de dezvoltare bazate pe arhitectura client-server care
 
permit părților de pagină web să fie actualizate fără a trebui să reîncărcați întreaga pagină [1]
 

3
jQuery​
–jQuery este o bibliotecă care face mai rapidă și mai ușoară să construirea paginilor Web
 
și aplicațiilor web JavaScript. De multe ori cu jQuery puteți scrie o singură linie de cod pentru a realiza
 
ceea ce ar fi luat 10-20 de linii de cod JavaScript obișnuit.[2]
 
9

Capitolul 2. Dezvoltarea aplicațiilor We b
 
 
2.1 Prezentare generală
 
 
Dezvoltarea
unei
aplicații
web
este
cuprinsă
din
mai
multe
etape
ce
trebuiesc
 
 
 
 
 
 
 
 
 
 
 
 
parcurse
în
vederea
obținerii
rezultatului
final
dorit.
Aceste
etape
au
proprietatea
de
a
 
 
 
 
 
 
 
 
 
 
 
 
 
fi
bine
structurate
și
precise,
pentru
ca
atunci
când
se
finalizează
aplicația

se
poată
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
identifica fiecare pas parcurs în vederea soluționării și dezvoltării aplicației dorite.
 
 
Dezvoltarea aplicațiilor web pot fi privite din mai multe puncte de vedere:
 

din
punct
de
vedere
tehnic,
dezvoltarea
unei
aplicații
web
complexe,
 
 
 
 
 
 
 
 
 
 
presupune
utilizarea
mai
multor
tipuri
de
tehnologii
sau
limbaje
de
 
 
 
 
 
 
 
 
 
 
programare,
care
întrepătrunse
pot

ruleze
o
aplicație
bine
definită.
Este
 
 
 
 
 
 
 
 
 
 
 
de
asemenea
foarte
importantă
o
arhitectură
bine
definită
încă
de
la
 
 
 
 
 
 
 
 
 
 
 
începutul nivelului de dezvoltare.
 

în
ceea
ce
privește
dezvoltarea
pe
partea
de
resurse
umane,
este
necesara
 
 
 
 
 
 
 
 
 
 
 
 
implicarea
unui
număr
variabil
de
personal
ce
dețin
abilitați
și
capacități
 
 
 
 
 
 
 
 
 
 
 
diferite.
Fiecare
dintre
aceștia,
este
dezvoltat
și
concentrat
pe
partea
lui
de
 
 
 
 
 
 
 
 
 
 
 
 
nivel
de
cunoștințe,
fiind
reunite
în
realizarea
obiectivului
final,
aplicația
 
 
 
 
 
 
 
 
 
 
web
funcțională.
Astfel,
vor
fi
implicați
dezvoltatori
cu
cunoștințe
de
baze
 
 
 
 
 
 
 
 
 
 
 
de
date,
de
programare
funcțională,
de
programare
la
nivel
de
interfață
cu
 
 
 
 
 
 
 
 
 
 
 
 
utilizatorul.
 

cerințe

în
funcție
de
cerințele
inițiale
ale
aplicației
web
realizarea
unui
 
 
 
 
 
 
 
 
 
 
 
 
proces
de
dezvoltare
poate
fi
bine
stabilit
încă
de
la
începuturile
dezvoltării
 
 
 
 
 
 
 
 
 
 
 
 
acesteia.
Însă,
pe
parcursul
procesului
de
dezvoltare
pot
apărea
diferite
 
 
 
 
 
 
 
 
 
 
cerințe noi care pot sau nu afecta bunul mers în dezvoltarea aplicațiilor.
 

2.2 Avantaje și dezavantaje în dezvoltarea aplicațiilor web
 

Dezvoltarea
unei
aplicații
web
poate
fi
o
activitate
valoroasă
,
dar
care
însa
 
 
 
 
 
 
 
 
 
 
 
 
 
poate
întâmpina
probleme.
In
momentul
dezvoltării
unei
aplicații
web,
sunt
de
luat
în
 
 
 
 
 
 
 
 
 
 
 
 
 
considerare
câțiva
factori
principali
care
au
ca
scop
determinarea
avantajului
 
 
 
 
 
 
 
 
 
 
10

dezvoltării
aplicației
sau
problemele
ce
pot
apărea
pe
parcursul
dezvoltării
acesteia.
O
 
 
 
 
 
 
 
 
 
 
 
 
aplicație
poate
implica
o
mulțime
de
tehnologii,
limbaje
de
programare,
limbaje
de
 
 
 
 
 
 
 
 
 
 
 
 
scripting
și
de
marcare,
dar
și
dezvoltarea
la
nivelul
cu
bazele
de
date
și
design-ului
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
grafic.
Sunt
de
luat
în
calcul
mai
multe
aspecte
care
pot
crea
avantaje
sau
dezavantaje,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cum ar fi:
 

Funcționalitate

determinarea
principalului
avantaj
în
scrierea
și
dezvoltarea
 
 
 
 
 
 
 
 
 
unei
aplicații
web
este
dată
de
funcționalitatea
acesteia.
In
comparație
cu
unele
 
 
 
 
 
 
 
 
 
 
 
 
site-uri
statice
ce
sunt
create
doar
din
cod
de
tip
hipertext,
HTML
și
CSS.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Aplicațiile
pot
oferi
însa
un
nivel
ridicat
de
interacțiune
față
de
utilizator.
 
 
 
 
 
 
 
 
 
 
 
 
Astfel

dacă
se
dorește
dezvoltarea
unei
aplicații
complexe,
este
necesară
 
 
 
 
 
 
 
 
 
 
 
includerea
mai
multor
tipuri
de
limbaje
de
programare
sau
scripting,
 
 
 
 
 
 
 
 
 
 
reprezentând
un
dezavantaj
pentru
o
persoană
cu
cunoștințe
de
bază
la
nivel
de
 
 
 
 
 
 
 
 
 
 
 
 
 
aplicații
web.
El
are
nevoie

studieze
și

învețe
noile
structuri
ce
urmează
a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fi incluse în aplicația web.
 

Abilitați


un
dezavantaj
pentru
scrierea
de
aplicații
web
este
dat
de
setul
 
 
 
 
 
 
 
 
 
 
 
 
 
necesar
de
informații
ce
trebuie

le
dețină
personalul
implicat
în
dezvoltare.
 
 
 
 
 
 
 
 
 
 
 
 
In
funcție
de
cerințele
aplicației,
un
dezvoltator
sau
o
echipă
de
dezvoltatori
 
 
 
 
 
 
 
 
 
 
 
 
trebuie

dețină
informațiile
și
cunoștințele
necesare
tehnologiilor
folosite.
 
 
 
 
 
 
 
 
 
Limbajele
principale
de
programare,
PHP
sau
ASP,
sunt
adesea
combinate
cu
 
 
 
 
 
 
 
 
 
 
 
limbaje
de
scripting,
JavaScript,
pe
partea
de
client,
sau
cu
limbajele
de
baze
de
 
 
 
 
 
 
 
 
 
 
 
 
 
 
date
care
întrepătrunse
oferă
aplicația
complexă
web
dorită.
De
asemenea,
dacă
 
 
 
 
 
 
 
 
 
 
 
este
necesară
dezvoltarea
unei
interfețe
cu
utilizatorul
specială,
trebuie
 
 
 
 
 
 
 
 
 
implicate
tehnologii
și
personal
ce
au
cunoștințe
legate
de
crearea
și
 
 
 
 
 
 
 
 
 
 
 
dezvoltarea de design.
 

Întreținere


nivelul
de
complexitate
al
unei
aplicații
web
este
poate
avea
un
efect
 
 
 
 
 
 
 
 
 
 
 
 
 
 
negativ
asupra
întreținerii.
Astfel
că,
nivelul
de
calificare
necesar
în
pregătirea
 
 
 
 
 
 
 
 
 
 
 
și
dezvoltarea
acestor
aplicații
este
foarte
important
pentru
viitoarele
evoluții
 
 
 
 
 
 
 
 
 
 
sau
dezvoltări
ale
aplicațiilor
web.
De
cele
mai
multe
ori
aplicațiile
web
au
 
 
 
 
 
 
 
 
 
 
 
 
 
nevoie
de
rafinament,
iar
odată
ce
sunt
în
funcțiune,
procesul
de
dezvoltare
 
 
 
 
 
 
 
 
 
 
 
 
poate
fi
continuat
pentru
o
altă
perioadă
de
timp.
Sunt
de
luat
în
calcul
 
 
 
 
 
 
 
 
 
 
 
 
 
 
modificările
ulterioare
ce
pot
apărea
la
nivelul
unei
aplicații
web,
modificarea
 
 
 
 
 
 
 
 
 
 
 
limbajelor
folosite
în
funcție
de
cerințele
deținătorului
aplicației,
sau
diferitele
 
 
 
 
 
 
 
 
 
 
11

configurări
pentru
server
și
siguranță
ce
pot
afecta
procesul
optim
pentru
 
 
 
 
 
 
 
 
 
 
 
dezvoltare.
 
2.3 Arhitectura unei aplicații web
 
2.3.1 Avantaje și constrângeri ale arhitecturii aplicațiilor
 

Fiecare
arhitectură
propusă
și
dezvoltată
va
fi
compusă
atât
din
avantaje
cât
și
 
 
 
 
 
 
 
 
 
 
 
 
 
din
dezavantaje
ce
vor
avea
un
rol
definitor
asupra
aplicației
ce
urmează

fie
 
 
 
 
 
 
 
 
 
 
 
 
 
 
dezvoltată.
Astfel
că,
fiecare
arhitectură
trebuie

asigure
și

atingă
un
nivel
adecvat
 
 
 
 
 
 
 
 
 
 
 
 
 
 
de cerințe ce fac referire la următoarele caracteristici:
 

Scalabilitate

arhitectura
inițială
trebuie

aibă
posibilitatea
de
a
fi
extinsă
în
 
 
 
 
 
 
 
 
 
 
 
 
 
cazul apariției unor cerințe noi.
 

Performantă


răspunsul
fiecărei
aplicații
la
nivelul
utilizatorilor
trebuie
sa
 
 
 
 
 
 
 
 
 
 
fie
încadrat
într-un
timp
optim
care
va
avea
un
rol
definitor
în
impresiile
 
 
 
 
 
 
 
 
 
 
 
 
 
oferite
de
aplicație
asupra
acestora.
De
asemenea,
aplicația
trebuia

 
 
 
 
 
 
 
 
 
 
răspundă
fără
erori
la
un
nivel
mare
de
încărcare
în
ceea
ce
privește
 
 
 
 
 
 
 
 
 
 
 
 
 
utilizatorii,
fiind
evitate
momentele
în
care
aplicația
s-ar
putea
opri
din
 
 
 
 
 
 
 
 
 
 
 
cauze precum traficul.
 

Fiabilitate

conținutul
și
funcționalitatea
aplicației
create

răspundă
 
 
 
 
 
 
 
 
 
corespunzător
pe
o
perioadă
cât
mai
lungă
de
timp,
caracteristică
ce
are
un
 
 
 
 
 
 
 
 
 
 
 
 
 
rol
important
în
proiectarea
inițială
a
arhitecturii,
deoarece,
modificările
 
 
 
 
 
 
 
 
 
ulterioare
ale
funcționalităților
vor
avea
un
impact
negativ
asupra
 
 
 
 
 
 
 
 
 
utilizatorilor
ce
deja
au
folosit
aplicația
dezvoltată.
De
asemenea,
apariția
 
 
 
 
 
 
 
 
 
 
erorilore

nu
afecteze
modul
optim
de
rulare
al
aplicației.
Apariția
oricărui
 
 
 
 
 
 
 
 
 
 
 
 
defect al arhitecturii nu trebuie să întrerupă serviciile oferite de aplicație.
 

2.4 Construcția și implementarea unei aplicației web la nivel funcțional
 
 
Nivelul
funcționalității
unei
aplicații
web
poate
fi
dat
prin
totalitatea
 
 
 
 
 
 
 
 
 
 
elementelor
ce
construiesc
o
aplicație
complexă
ce
se
întrepătrund
în
momentul
 
 
 
 
 
 
 
 
 
 
 
închegării
finale.
Astfel

o
aplicație
funcțională
cuprinde
elemente
și
caracteristici
ce
 
 
 
 
 
 
 
 
 
 
 
 
încep
de
la
nivelul
setărilor
serverelor
care
vor
utiliza
aplicația
până
la
nivelul
 
 
 
 
 
 
 
 
 
 
 
 
 
12

interfeței și interacțiunii cu utilizatorul.
Astfel

funcționarea
optimă
a
unei
aplicații
 
 
 
 
 
 
 
web va fi dată de participarea următorilor actori:
 

Analist


va
prelua
toate
datele
inițiale
ale
cerințelor
de
afaceri,
le
va
 
 
 
 
 
 
 
 
 
 
 
 
 
interpreta
și
prelucra
pentru
ca
ulterior

poată
fi
transformate
în
cerințe
 
 
 
 
 
 
 
 
 
 
 
 
pentru dezvoltare.
 

Arhitect


procesează
datele
primate
de
la
analist,
creează
o
viziune
generală
 
 
 
 
 
 
 
 
 
 
 
 
asupra
proiectului
ce
urmează
a
fi
dezvoltat.
De
asemenea,
are
rol
în
crearea
 
 
 
 
 
 
 
 
 
 
 
 
 
unui
model
conceptual
al
aplicației
pentru
ca
ulterior

poată
fi
prezentat
 
 
 
 
 
 
 
 
 
 
 
 
echipei.
 

Designer


bazat
pe
datele
analizate
de
arhitect
și
cerințelor,
acesta
dezvoltă
 
 
 
 
 
 
 
 
 
 
 
 
diverse interpretări ale datelor respective transpuse în planșe de design.
 

Dezvoltatorul
(developer)


bazat
pe
design-ul
realizat
și
aprobat,
el
va
realiza
 
 
 
 
 
 
 
 
 
 
 
 
integrarea
efectivă
a
planșelor
la
nivel
funcțional
(atât
pe
partea
de
interfață
 
 
 
 
 
 
 
 
 
 
 
 
cu utilizatorul, cât și la nivelul funcționalității și prelucrării datelor.
 

Tester


rolul
acestuia
este
de
a
prelua
datele
de
la
toți
actorii,
în
vederea
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
comparării
lor
cu
aplicația
dezvoltată.
El
trebuie

se
asigure
ca
cerințele
de
 
 
 
 
 
 
 
 
 
 
 
 
 
business
inițiale
au
fost
respectate
la
toate
nivelurile
și
ca
aplicația
 
 
 
 
 
 
 
 
 
 
 
funcționează corespunzător la parametrii corespunzători
 

Administrator
de
rețea


finalizarea
cerințelor
celor
implicați
mai
sus,
duce
la
 
 
 
 
 
 
 
 
 
 
 
 
finalizarea
efectivă
a
funcționalității
aplicației.
Prin
urmare,
pentru
ca
 
 
 
 
 
 
 
 
 
aplicația

ruleze
într-un
sistem
optim,
securizat
în
internet,
este
nevoie
de
 
 
 
 
 
 
 
 
 
 
 
 
acest tip de actor.
 
Dezvoltarea
funcțională
a
aplicației
este
supusă
mai
multor
pași,
începând
de
la
 
 
 
 
 
 
 
 
 
 
 
 
nivelul
de
analiză,
până
la
lansarea
în
internet
a
aplicației
web,
pașii
vor
trebui
 
 
 
 
 
 
 
 
 
 
 
 
 
 
repetați
sau
reluați.
Începând
de
la
o
versiune
inițială
a
aplicației,
aceasta
trebuie
 
 
 
 
 
 
 
 
 
 
 
 
 
testată și evaluată ca apoi eventual să fie extinsă sau modificată.
 
În
concordanță
directă

actorii

implicați
în
dezvoltarea
aplicațiilor
web,
sunt
 
 
 
 
 
 
 
 
 
 
etapele
dezvoltării
aplicației
efective,
care
de
asemenea
necesită
parcurgerea
unor
pași
 
 
 
 
 
 
 
 
 
 
 
cronologici pentru a se ajunge la un rezultat dorit:
 

Identificarea
cerințelor
și
obiectivelor
inițiale


primul
pas
în
inițierea
proiectului
este
 
 
 
 
 
 
 
 
 
 
 
 
dat
de
stabilirea
și
colectarea
informațiilor
prealabile
ce
vor
reprezenta
firul
 
 
 
 
 
 
 
 
 
 
 
principal în dezvoltare.
 
13


Planificarea


caracterizată
prin
realizarea
unei
strategii
de
dezvoltarea
și
a
unui
 
 
 
 
 
 
 
 
 
 
 
 
plan
bine
pus
la
punct
pe
baza
cerințelor
și
obiectivelor
inițiale.
Planificarea
va
 
 
 
 
 
 
 
 
 
 
 
 
 
fi
realizată
și
la
nivel
tehnic
din
punct
de
vedere
al
softurilor
și
tehnologiilor
 
 
 
 
 
 
 
 
 
 
 
 
 
 
utilizate.
 

Conceptul
de
design


după
realizarea
planificării
vor
fi
implementate
propunerile
 
 
 
 
 
 
 
 
 
 
 
de
design,
care
vor
fi
aprobate
sau
modificate
adecvat
în
urma
cerințelor
 
 
 
 
 
 
 
 
 
 
 
 
inițiale.
 

Proiectare
și
implementare


cuprinde
întreg
procesul
de
development,
care
va
 
 
 
 
 
 
 
 
 
 
 
avea
ca
finalitate,
o
aplicație
funcțională
realizată
pe
cerințele
și
obiectivele
 
 
 
 
 
 
 
 
 
 
 
inițiale.
 

Procesul
de
testare


se
va
realiză
procesul
de
testare
ce
include
compararea
 
 
 
 
 
 
 
 
 
 
 
 
 
datelor
inițiale
și
aplicația
finală
rezultat.
Acest
proces
are
ca
scop
identificarea
 
 
 
 
 
 
 
 
 
 
 
 
eventualelor probleme și trimiterea lor mai departe pentru rezolvare.
 

Suport


odată
lansată
aplicația,
în
cazul
apariției
unor
erori,
se
va
oferi
suport
 
 
 
 
 
 
 
 
 
 
 
 
 
 
de către dezvoltatori.
 
Este
foarte
importantă
respectarea
structurii
și
pașilor
în
dezvoltarea
 
 
 
 
 
 
 
 
 
aplicațiilor
web,
deoarece
în
cazul
omiterii
unuia
dintre
aceștia
pot
apărea
diverse
 
 
 
 
 
 
 
 
 
 
 
 
elemente
ce
afectează
bunul
mers
al
aplicației.
Netratarea
corespunzătoare
sau
 
 
 
 
 
 
 
 
 
 
distorsionarea
informațiilor
inițiale
pot
duce
la
un
întreg
proces
defect
de
dezvoltare,
 
 
 
 
 
 
 
 
 
 
 
 
care
va
avea
un
rol
negativ
pentru
dezvoltatori.
De
aceea,
este
important
ca
fiecare
 
 
 
 
 
 
 
 
 
 
 
 
 
 
actor
sa
își
realizeze
corect
fiecare
pas,
pentru
ca
în
final

rezulte
o
aplicație
corect
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
funcțională conform cerințelor inițiale oferite spre dezvoltare.

14

Capitolul 3

. Eliminarea unui obiect nedorit

3.1 Introducere
 
Eliminarea unor obiecte dintr-o imagine se poate realiza în trei pa
ș
i:


determinarea conturului obiectului nedorit


ș
tergerea obiectului


umplerea spa
ț
iului rămas în urma
ș
tergerii

3.2 Detectarea conturului – Contur activ
 
Conturul activ reprezinta o familie de metode asociate cu ajutorul cărora se
 
poate detecta conturul obiectelor . Acestea au aplicații în mai multe domenii, cum ar fi
 
urmărirea și segmentarea imaginilor.
 
 
In capitolele următoare voi prezenta doi algoritmi, cu ajutorul cărora conturul
 
obiectelor se poate determina într-un mod facil, și anume .Contururi active geodezice
 
morfologice denumit în continuare MorphGAC,​
Contururi active fără margine
 
denumit în continuare MorphACWE.
 
Fiecare dintre acestea au avantaje cat și dezavantaje :
 

MorphGAC este potrivit pentru obiecte cu conturul vizibil. Insa este
 
nevoie ca imaginea sa fie preprocesata pentru ca conturul sa fie mai bine
 
evidențiat. Calitatea conturului redat de algoritmul MorphGAC depinde
 
în special de preprocesarea aplicat​
ă​
.
 

MorphACWE funcționează bine când pixeli aflați în interiorul și
 
exteriorul obiectelor au medii diferite.
 
 

Spre deosebire de MorphGAC, MorphACWE nu necesita un contur bine
 
definit și funcționează pe imaginea originala fără preprocesare, asta face
 
MorphACWE mai ușor de folosit și reglat fata de MorphGAC.
 
 

3.2.1 Contururi active geodezice morfologice(​
MorphGAC​
)
 
3.2.2 ​
Contururi active fără margine(​
MorphACWE​
)
 
3.3 Im

age inpainting ​
(umplerea spatiului sters)

Capitolul 4. Aplica
ț
ie

Capitolul 5. Concluzii

15

Bibliografie

:

[1]

Carey


W

oderhouse –

https://www.upwork.com/hiring/development/how-ajax-works/

[2]

Matt Doyle –

https://ww w.elated.com/articles/what-is-jquery/

Marcelo Bertalmio ,Guillermo Sapiro,Vicent Caselles, Coloma Ballester : Image Inpainting

http://www.dtic.upf.edu/~mbertalmio/bertalmi.pdf

16

Juan Manuel Rendón Mancha , Vannary Meas-Yedid2 , Santiago Venegas Martínez ,

Jean-Christophe Olivo-Marin ,Georges Stamon : Morphological Active Contours for Image

Segmentation

https://pdfs.semanticscholar.org/7b4a/827dfd5e8756d48cf0deda6e487cc314ae6e.pdf

17

Similar Posts