Conf. univ. dr. Doru Constantin Absolvent: Urea Nicolae Adrian 2017 2 UNIVERSITATEA DIN PITEȘTI FAC ULTATEA DE ȘTIINȚE, EDUCAȚIE FIZICĂ ȘI… [630834]
1
UNIVERSITATEA DIN PITEȘTI
FACULTATEA DE ȘTIINȚE, EDUCAȚIE
FIZICĂ ȘI INFORMATICĂ
DOMENIU DE LICENȚĂ INFORMATICĂ
LUCRARE DE LICENȚĂ
Coordonator:
Conf. univ. dr. Doru Constantin
Absolvent: [anonimizat]
2017
2
UNIVERSITATEA DIN PITEȘTI
FAC ULTATEA DE ȘTIINȚE, EDUCAȚIE
FIZICĂ ȘI INFORMATICĂ
DOMENIU DE LICENȚĂ INFORMATICĂ
APLICATIE WEB PRIVIND
PROCESAREA IMAGINILOR
Coordonator științific:
Conf.univ.dr. Doru Constantin
Absolvent: [anonimizat]
3
Cuprins
1. Introducere……………………………… ……… ………………………….5
2. Capitolul 1: Prezentarea tehnologiilor utilizate……… …………………..6
2.1. Pagini web si servere web……………………………………………….9
2.2. Prezentarea limbajului Html ………………………………………….11
2.3. Prezentarea limbajului Php ……………………………………………13
2.4. Prezentarea limbajului Mysql …………… ………… …………………22
2.5. Prezentarea limbajului JavaScript………… …………………………25
3. Capitolul 2: Procesa rea imaginilor ……………………………………….26
3.1. Tehnici de imbunatățire a imaginii……………………………………29
3.2. Filtrarea imaginilor……………………………………………………31
3.2.1. Modificarea nelinia ră a contrastului…………………………………31
3.2.2. Filtrarea liniară………………………………………………………… 32
3.2.3. Pseudoco lorarea………………………………………………………..32
3.2.4. Imagini binare……………………… ………………………………….33
4. Capitolul 3: Descrierea aplicaț iei…… ……………………………………34
4.1. Arhitectura aplicaț iei web ……………………………………………..34
4.2. Crearea bazei de date a aplicaț iei……………………………………..34
4.2.1. Crearea bazei de d ate folosind MAMP……………………………….34
4.2.2. Crearea unui tabel al bazei de dat e……………………………………36
4.3. Interfața cu utilizatorul… ……………………………………………..38
4.4. Accesarea aplicaț iei…………………………………………………….44
4.4.1. Prezentarea aplicaț iei…………………………………………………..45
4.4.2. Interfața aplicaț iei………………………………………………………46
4
5. Concluzie………………………………………………………………… …53
5.2. Posibilități de dezvoltare…………………………………………………54
6. Bibliogra fie…………………………………………………………………55
7. Anexe……………………………………………………………………….56
5
Introducere
Subiectul prezentat d e mine spre creeare a prezentat interes și a fost acceptat ca o muncă
plăcută euri stică.
Proiectarea a fost sus ținută de un program complex de lucr u în care au fost cuprinse
urmatoarele elementele necesare unei astfel de lucrări: elaborarea etapelor necesare,
selectarea,procurarea materialelor,alegerea mijloacelo r și a procedeelor de lucru, hotărârea
termenelor de procesare împreună cu profesorul îndrumător.
Proiectul este o tema de cercetare care arată atingerea unui scop bine p recizat ce urmează
a fi finalizat , alegându -se o temă care se bazează atât pe cunoștințele cât și pe experiența
dobândită la disciplinele de specialitate cât ș i în laboratoarele de practică.
Prelucrarea pe computer este un domeniu complx care cuprinde domenii de dezvol tare
teoretica c ât și de aplicare , contributii extrem de diversificate , de la standarde și expresii
matematice pana la aplicaț ii comerciale ș i artistice.
Dacă domeniile de cercetare, echip ele de specialiști , alcătuiesc munca in domeniu , se ocupă în
principal cu obținerea de metode, te hnici de prelucrare și cu simplificarea acestora într -un cadru
clar, iar echipele de producție se ocupă cu obținerea pachetelor de programe, activitatea
aplicativa se referă la folosi rea programelor aflate la dispoziție, cu scopul de a realiza produse cu
final artistic și comerci al.
Așadar, în primă fază diferă , creatorii de programe pentru p rocesarea imaginii de utilizatorii
acestor programe.
Prelucrarea și analiză imaginilor( de multe ori redenumita prescurtat prelucrarea imaginilor) a
luat nastere ideii și neces ității de a înlocui ochiul uman printr -o mașină. Este important de spus că
analiz a imaginilor a depașit cu mult simpla înlocuir e a observatorul ui uman, pentru că au apărut
idei inovatoa re pentru probleme cu care omul nu se mai confruntase ca în cazul imaginilor non –
vizibile(imagini acustice, ultra -sonore ,radar).
6
2. Capitolul 1: Prezentarea tehnologiilor utilizate
Computerul în general este folosit dimineață la o cafea, la diferitele domenii de activitate și seara
la vizionarea unui f ilm, mulți sunt aceia care, stând neclintiți în fața computerelor , călătoresc și
utilizează internetul din diferit e colțuri ale lumii.
Pentru utilizatorul care descoperea comunicarea liberă și ofe rta complexă din mediul online ,
diversitaea de biblioteci, reviste și grupuri de discuții , accesul în mediul online se aseamănă cu
un vis interm inabil, excursiile la care vise zi să le faci în lume, aproape sau la distanțe foarte
marii pe site -uri găsești disponibile locuri frumoase pe care utilizatorul stând în fața computer ului
poate viziona lumea cea mare și mică în biroului .
Prin Internet, utilizatorii înțeleg de mu lte ori construcția rețelelor de calculatoare interconectate
din toată lume a. Dar , specialiștii aprobă că Internetul nu este o rețea ci un ansamblu de reguli –
protocoale de comunicație – ce au permisia transferul ui de date între dif eritele locații de pe glob,
dreptul la informațiile sunt memorat e în PC -urile lor.
Accesar ea internet ului este modul de a te conecta in rețea, cât și accesul la infor mația ce se
difusează prin calculat oarele legate in rețea, accesibili tatea de comunicare cu profesioni știi din
lumea într eagă.Internetul este o imensă rețea de camputere , mai exact , o rețea de rețele de
calculatoare. O ramură a calculatoarelor ofera servicii distincte pentru oameni.
În anul 1985,in jur de 1999 de calculatoare au fost legate la internet,dezvoltând astfel foarte rapid
internetul . La momentul actual sunt sute sau miliarde de dispozitive conectate la internet, în care
oamenii il accesează într-un număr foarte mare. Internetul este în continuă dezvoltare oferind
accesul la reț eaua de ca lculatoare milioanelor de clienț i, de la începă tori până la avans ați care să
foloseasca inter netul pentru a obținerea informații lor noi din diferite domenii .
În țara noastra mediul online și -a făcut apariția destul de lent,o bună perioada de timp el fiind
considerat nefolositor.
7
Chiar și în ziua de azi , pentru folosirea de zi cu zi , mai ales datorită costurilor foarte
mari,internetul este destul de puțin utiliza t. Din punct ul de vedere al rețelei de internet , lucrurile
au evoluat foarte mult, dar punct ul de vedere al resurselor , informațiile valabile sunt foarte
numeroase , dar și eronate .
Importanța internetului a determinat majoritatea companiilor sa folosească internetul pentru a -și
securiza resurse și depozite le infor maționale . In tara noastra s -a observat o cre ștere majora a
traficului , în adău garea de informații din ext ern în defavoarea exportului de date informatice .
În contextul internațional actual de afaceri, academic și tehnologic, fenomene ca globalizareași
liberalizarea accesului la informație dinamică și nivelul de performanță al dezvoltărilor
îndomeniul comunicațiilor și al calculatoarelor, sunt deja lucru ri commune și legate unele
dealtele.
Dincolo de granițe, in restul omenirii, Internetul a devenit deja cea mai comodă sursă de
informație, in timp ce ceea ce este disponibil și in România pe Internet este fie vechi, fie incorect,
fie lipsește prin costurile ridicate.
Pentru a vedea viitorul rețelei de Internet, trebuie să înțelegem tipurile de tehnologii descrise de
experții implicați î n manevrarea rețelei pentru ușurarea utiliză rii internetului cât mai mult posibil .
Colaborare
Internetul a facut imense progrese pentru realizarea conferințelo r video online la dista nțe mari.
Ca și exemplu,in zile le noastre, internetul ne ajută la r ealizarea de cercetări si elaborarea unor
documen te fară a fi necesară deplasare .Totodată putem realiza conferințe audio -video î n care ne
putem folosi de o cameră web penru a arăta în diferite locații ca și cum ne -am afla în același loc
pentru a ne expune cercetările efectuate tuturor participanțiilor.
8
Obiecte
Crea torii paginilor Web nu mai au limită la texte și grafice , astfel incât putem găsi o mulțim e de
elemente interesante pe internet și cu o viteză mare de accesare.Câteva aplica ții recente permit
distribuirea de programe pe Web.
Mesaje e -mail complexe
În zilele noastre,mesajele de tip text nu mai sunt simple datorita limbajului HTML, acum
putem formata cu diferite caractere si diferite formate de paragraf. În plus de la un simplu
e-mail avem acum spațiu online mare in care putem păstra si partaja diferite fisiere
multimedia .
Securitate
În spatele fiecarei rețele de internet exista specialiști care lucreaza la protejarea datelor in
domeniul online acestea fiind foarte importante pentru site -urile de comercializare, unde
sunt folosite detalii de la conturi bancare unde confidențialitatea este foarte importantă.
În ultima perioada, pe internet au apărut site -uri care evaluează alte pagini de internet care
fac din internet un loc mai sigur . Majoritatea site -urilor cer cearea de user definit cu o
parolă personala pentru ca datele din acel cont sa fie acce sate doar de deținător.
9
2.1. Pagini web si servere web
Construcția World Wide Web (www) este pe baza unui protocol numit
Hypertext Transfer Protocol
(
HTTP
).
HTTP este un mic protocol rapid potrivit sistemelor informatice multimedia si face conexiunea
intre site -uri. Web -ul constă în pagini cu informații de pe gazde care rulează software de tip
Server Web
Majoritatea utilizatorilor consideră ca gazda este server -ul Web, lucru total eronat , server -ul web
fiind un software, nu un computer.
Serverul web sau web server este serverul care stochează (găzduiește) pagini web și le pune la
dispoziția solicitanților prin protocolul HTTP . Și de dată aceasta relația server -client se bazează
pe o aplicație care este instalată pe server și care este programată să transfere paginile web
găzduite. Putem observa aici că ideea de web server presupune și noțiunea de hosting (găzduire),
asta deoarece serverul trebuie să dețină datele pe care urmează să le returneze la cerer e.
Relația este următoarea: utilizatorul (clientul) aflat în dreptul unui computer pe care are instalată
o aplicație tip browser solicită (serverului) prin intermediul unui url o anumită pagină web;
serverul rulează anumite linii de cod și returnează un re zultat.
Descrierea de mai sus se potrivește perfect în cazul site -urilor (paginilor web) statice (adică cele
bazate în exclusivitate doar pe limbajele html și css). Există însă așa numitele site -uri dinamice
care au în compunere alături de limbajul rudimen tar de afișare a paginii web și un limbaj de
comunicare între serverul web și o bază de date.
10
De această dată relația este următoarea:
• utilizatorul (clientul) aflat în dreptul unui computer pe care are instalată o aplicație tip
browser solicită (serverului ) prin intermediul unui url o anumita pagină web;
• serverul web verifică solicitarea și prin intermediul unui limbaj de programare special
interoghează o bază de date, dacă anumite condiții sunt intrunite, baza de date returnează
serverului web datele solic itate care la rândul lui furnizează datele mai departe clientului
inițial. În această ultimă relație între web server și utilizator sunt transmise doar informații
destinate afișării în browser într -o formă prietenoasă a informațiilor solicitate. Până să
ajungă la utilizator, așa cum am văzut mai sus, serverul web prin intermediul unui
scripting special schimbă o serie de informații cu o bază de date stocată.
Serverul Web este dedicat memorării, transmiterii și regăsirii paginilor de Web și a fișierelor
legate de acestea.
Prin publicarea unui site local (upload), directorul, împreună cu conținutul său, estetransferat la
server -ul Web care conține Software -ul prin care site-ul este transmisnavigatoarelor Web ale
calculatoarelor conectate la Internet.
Odata publicat, site-ul setransformă din site local în site Web, iar interacțiunea utilizatorului cu el
are loc similar modului descris in figura 1.
11
Fig 1.
2.2. Prezentarea limbajului HTML
HyperText Markup Language (HTML ) este un limbaj de marcare utilizat pentru crearea paginilor
web ce pot fi afișat e într -un browser (sau navigator). Scopul HTML este mai degrabă prezentarea
informațiilor – paragrafe, fonturi, tabele ș.a.m.d. – decât descrierea semanticii documentului.
Specificațiile HTML sunt dictate de World Wide Web Consortium (W3C).
HTML este o formă de marcare orientată către prezentarea documentelor text pe o sin gura
pagină, utilizând un software de redare specializat, numit agent utilizator HTML , cel mai bun
exemplu de astfel de software fiind browserul web . HTML furnizează mijloacele prin care
conținutul unui document poate fi adnotat cu diverse tipuri de metada te și indicații de redare.
Indicațiile de redare pot varia de la decorațiuni minore ale textului, cum ar fi specificarea faptului
că un anumit cuvânt trebuie subliniat sau că o imagine trebuie introdusă, până la scripturi
sofisticate, hărți de imagini și f ormulare. Metadatele pot include informații despre titlul și autorul
documentului, informații structurale despre cum este împărțit documentul în diferite segmente,
paragrafe, liste, titluri etc. și informații cruciale care permit ca documentul să poată fi legat de
alte documente pentru a forma astfel hiperlink -uri (sau web-ul).
12
HTML este un format text proiectat pentru a putea fi citit și editat de oameni utilizând un editor
de text simplu. Totuși scrierea și modificarea paginilor în acest fel solicită cunoștințe solide de
HTML și este consumatoare de timp. Editoarele grafice (de tip WYSIWYG) cum ar
fi Macromedia Dreamweaver , Adobe GoLive sau Microsoft FrontPage permit ca paginile web sa
fie tratate asemănător cu documetele Word, dar cu observația că aceste programe generează un
cod HTML care este de multe ori de proa stă calitate.
HTML se poate genera direct utilizând tehnologii de codare din partea serverului cum ar
fi PHP, JSP sau ASP. Multe aplicații ca sistemele de gestionare a conținutului , wiki-
uri și forumuri web generează pagini HTML.
HTML este de asemenea utilizat în e-mail. Majoritatea aplicațiilor de e -mail folosesc un editor
HTML încorporat pentru compunerea e -mail-urilor și un motor de prezentare a e -mail-urilor de
acest tip. Folosirea e -mail-urilor HTML este un subiect controversat și multe liste de mail le
blochează intenționat.
HTML este prescurtarea de la Hyper Text Mark -up Language si este codul care sta la baza
paginilor web.
Pagini le HTML sunt formate din etichete sau tag -uri și au extensia „.html” sau „.htm”. În marea
lor majoritate aceste etichete sunt pereche, una de deschidere <eticheta> și alta de
închidere </eticheta> , mai există și cazuri în care nu se închid, atunci se folos ește <eticheta />.
Navigatorul web interpretează aceste etichete afișând rezultatul pe ecran. HTML -ul este un
limbaj care nu face deosebire între litere majuscule și minuscule.
Pagina principala a unui domeniu este fisierul „index.html” respectiv „index.ht m”. Această
pagină este setată a fi afișată automat la vizitarea unui domeniu.
De exemplu la vizitarea domeniului www.nume.ro este afișată pagina www.nume.ro/index.html.
Principiul de bază al funcționării Internetului constă în faptul că două sau mai multe calculatoare
pot comunica între ele. Pentru ca acest lucru să fie posibil este neces ar să existe un „protocol”,
adică un ansamblu de norme care trebuie respectate de calculatoare (deci de programele care
rulează pe ele) pentru ca schimbul de date să poată avea loc. Normele se referă la:
13
• găsirea calculatorului destinatar al transferului de date;
• transmiterea efectivă a datelor;
• modalități prin care expeditorul comunică faptul că au fost transmise toate datele, iar
destinatarul comunic ă faptul că le -a recepționat;
• compresia datelor: prin aplicarea anumitor algoritmi matematici, da tele care urmează să fie
expediate sunt prelucrate de așa natură, încât să fie memorate prin utilizarea unui spațiu cât mai
mic de memorie. Prin urmare, transmiterea lor durează mai puțin. Invers, la destinație sunt
decompresate prin utilizarea acelorași a lgoritmi matematici;
• identificarea erorilor care pot interveni în transmiterea datelor: și aici există mai mulți algoritmi
care permit identificarea și corectarea erorilor.
2.2. Prezentarea limbajului de programare Php
PHP, " PHP: Hypertext Preprocessor", este un limbaj de scripting utilizat pe scară largă, realizat
și distribuit în sistem Open Source (acesta fiind gratuit ), fiind creat săecoaș pentru a dezvolta
aplicații web, prin integrarea codul ui PHP în documente HTML.Codul sursa sau alcătuirea sa
provine din limbajele de programare de bază , cum ar fi : C, Java și Perl, acesta putând fi invățate
cu ușurință .
Scopul limbajului este de a crea rapid pagini web dinamice, totodată în limbajul PHP se pot scrie
mult mai multe. În prezent limbajul PHP este unul dintre cea mai interesant ă tehnologie existentă
în prezent. Datorita îmbină rii caracte ristici dintre cele mai complex limbaj cu simplitatea
în folosi re, a devenit un instrument de top în dezvoltarea aplicațiilor în w eb. Spre deosibire de alt
instrument popular pentru dezvol tarea aplicațiilor Web numit Perl, PHP este un limbaj de
programare ușor pentru începători , chiar și pent ru cei care nu au mai executat procese de
programare . Php-ul perminte furnizarea conținuturilor dinamice, adică un conținut web modificat
automat zilnic sau într -un interval orar, ca de exemplu minut,ora. Conținutul Web site-ului este un
element important în susținerea traficului unui sit e Web … de obicei , vizitatorii nu vor mai reveni
14
la o pagină Web care conține aceleași informațiica și cele prezentate la ultima accesare . Pe de altă
parte, sit e-urile Web frecvent actualizate pot atrage cantități enorme de trafic.
Mai mult, PHP -ul poate fi executat de pe un server Web, nu neaparat în browser -ul utilizatorului .
În consecință, PHP poate obține accesul la fișiere, baze de date și alt e resurse inaccesibile
programului JavaScript. Acestea constituie bogate surse de conținut dinamic, care
atrag vizitatorii.
Noțiuni Fundamentale
Spre deosebire de un script scris în alte limbaje cum ar fi Perl sau C – în loc de ascrie un program
cu o mulțim e de comenzi pentru a produce un HTML, folosind PHP se poate scrie un script
HTML, ca cel de mai jos, ce include cod pentru a realiza ceva.
Codul PHP este d efinit de coduri de start și de sfârșit
ce permit intrarea și ieșirea din "modul PHP".
<html>
<hea d>
<title>Exemplu</title>
</head>
<body>
<?php
echo "Salut, sunt un script PHP!";?>
</body>
</html>
Diferența dintre PHP și altceva cum ar fi JavaScript, este acela că PHP este executat pe server pe
când JavaScript este executat pe calculatorul clientului (de browserul Web).
Pentru un cod similar celui de mai sus de pe un server, clientul primeste doar rezultatele codului
executat , fără a vedea conținutul codul ui. Se poate chiar configura serverul de web ca acesta
15
să proces eze toate fișierele HTML cu PHP și astfel nu iese in eviden ță nici o metodă ca un
utilizator să știe de fapt ce există în fișiere.
Cu PHP se poate crea și executa orice. PHP este în principal axat pe partea de s c ri pt i ng ce
rulează pe server, deci poate face orice face și un program CGI, cum ar fi colectarea de datede la
formulare, generarea de conținut dinamic sau trimitere și primire de cookie -uri. Dar PHP poate
face mult mai multe.
Există trei domenii principale unde sunt folosite scripturile PHP.
Scripturi ce rulează pe server . Acesta este cel mai tradițional și des utilizat . Este nevoie de trei
lucrui pentru a face să meargă: interpretorul PHP (CGI sau modul de server), un server web și un
browser web.
E nevoie ca serverul de web să
fie pornit, cu o conexiune PHP instalată. Se poate accesa rezultatul programelor scrise cu un
browser prin intermediul serverului de web.
Scripting în linie de comandă. Se poate face ca PHP să ruleze fără a fi nevoie de server și de
browser, ci doar de interpretorul PHP. Această metodă este ideală pentru script -urile ce se vor a fi
executate de regulă folosind cron (task scheduler înWindows), sau sarcini simple de procesare a
textelor.
Scrierea de aplicații ce rulează de partea clientului în mod grafic (GUI). Probabil căPHP nu este
limba jul cel mai bun de a scrie aplicații cu ferestre pentru Windows sau alte sisteme de operare,
dar dacă este bine cunocut și se dorește folosirea unor facilități avansate ale PHP-ului în
aplicațiile ce rulează de partea clientului, se poate totuși folosi PHP –
GTK pentru a scrie astfel de programe.
De asemenea, există posibilitatea de a scrie aplicații ce rulează pe platforme diferite folosind
aceastămetodă. PHP -GTK este o extensie a PHP -ului, nedisponibilă în distribuția principalăde
PHP.PHP poate fi folosit pe aproape toate marile sisteme de operare, incluzând Linux, multe
variante de Unix (incluzând HP-UX, Solaris și OpenBSD), Microsoft Windows, MacOS X, RISC
OS, probabil și altele. PHP are de asemenea suport pentru majoritatea serverelor de web din
prezent. Acestea includ serverele Apache, Microsoft Internet Information Server, Personal Web
Server, Netscape și iPlanet, serverul Oreillz Website Pro, Caudium, Xitami ,OmniHTTPd , și
16
multe atele. Pentru majoritatea serverelor PHP are un modul, iar pentrucelelalt e suportă
standardul CGI, PHP putând să lucreze ca un procesor CGI.Deci, cu PHP, există libertatea de a
alege un sistem de operare și un server de web. Chiar mai mult, există posibilitatea de a alege
programarea procedurală sau programarea orientată obiect , sau chiar să se combine acestea. Cu
toate acestea, nu orice facilitate astandardului POO este prezentă în versiunea curentă a PHP –
ului, multe librării de cod șiaplicații mari (incluzând și librăria PEAR) sunt scrise folosind doar
cod POO.Cu PHP programat orul nu este limitat să scoată rezultat HTML.
Posibilitățile PHP -ului includ afișarea de imagine, fișiere PDF și chiar filmulețe Flash (folosind
librăriile libswf și Ming) toate generate instant. Se poate de asemeanea ca rezultatul să fie orice
fișier text, cum ar fi XHTML sau orice alte fișiere XML. PHP poate genera automat aceste fișiere
și să le salveze în sistemul de fișiere în loc să le afișeze, formând un cache de partea
serverului pentru conținutul dinamic.Una dintre cele mai puternice și importante facilități în
PHP este suportul său pentru ogamă largă de baze de date. Scrierea une pagini de web ce
interacționează cu o bază de dateeste incredibil de simplă. PHP suportă și
ODBC
, standardul
Open Database Connection
, decise poate conecta la orice altă bază de date ce suporta acest standard mondial. PHP are de
asemenea suport pentru a conversa cu alte servicii folosind protocoale cum ar fi LDAP,
IMAP, SNMP, NNTP, POP3, HTTP, COM (pe Windows) și multe altele. Se pot, de asemenea,
deschide socket -uri de rețea și se poate interacționa între aproape toatelimbajele de programare
Web. PHP are suport pentru instanțierea obiectelor Java și utilizarea lor într-un mod
transparent ca obiecte PHP. Se pot de asemenea folosi extensii CORBA pentru a
accesa obiecte aflate la distanță. PHP are capabilități extrem de folositoare pentru
procesarea textului, de la POSIXExtins sau expresii regulare Perl, până la parsarea
documentelor XML. Pentru parsarea șiaccesarea documentelor XML, suportă standardele
SAX și
DOM.Folosind PHP în domeniul comerțului electronic, sunt foarte folositoare pentru programul
tău de plați online funcții de plată Cybercash, CyberMUT, VeriSign Payflow Proși CCVS.În cele
din urmă, dar nu în ultimul rând, PHP are și alte extensii interesante, cum ar fifuncți i ale
17
motorului de căutare mnoGoSearch, funcții pentru accesarea IRC -ului, multe utilitare
de compresie (gzip, bz2), conversie de calendar, traducere, etc.
PHP este un limbaj de programare destinat în primul rând Internetului, aducând dinamică unei
pagini w eb. Este unul dintre cele mai importante limbaje de programare web open -source (este
gratuit și, în plus, utilizatorii pot acționa liber asupra procesului de dezvoltare) și server -side
(codul sursă nu se rulează pe calculatorul celui care vizualizează pagi na, ci pe serverul web).
Numele său este un acronim recursiv: „Php este un Hypertext Processor”.
În anul 1994 a fost o extensie a limbajului server -side Perl iar mai apoi ca o serie de CGI -uri
compilate de Rasmus Lerdorf,pen tru generarea unui CV și pentru urmărirea vizitatorilor unui
site. A evoluat apoi în PHP/FI 2.0, dar proiectul open -source a început să ia amploare după ce
Zeev Suraski și Andi Gutmans au lansat o nouă versiune a interpretorului PHP în vara anului
1998, această versiune primind numele de PHP 3.0. Tot ei au schimbat numele în acronimul
recursiv amintit mai sus, până atunci PHP -ul fiind cunoscut ca „Personal Home Page tools”.
În prezent este utilizată versiunea 6 a acestui limbaj. Prin CGI (Common G ateway Interface) se
înțelege o interfață a unui server de web, care extinde funcționalitățile acestuia. CGI nu se referă
la un anumit limbaj de programare, ci definește un modul standardizat, prezent în cadrul unui
server HTTP. Prin intermediul acestui mo dul se stabilesc regulile prin care server -ul va pasa
datele primite de la un utilizator către o aplicație scrisă într -un anumit limbaj de programare,
pentru ca apoi să întoarcă rezultatele acestei aplicații înapoi la utilizator.
Limbajul PHP, în marea ma joritate a cazurilor, se folosește sub formă de secvențe de cod
inserate în cadrul unui document HTML. Din acest motiv, vom prefera termenul de „script PHP”
celui de program PHP. Structura unui script PHP este foarte asemănătoare cu cea a unui cod scris
în limbajul C, mai ales în sensul în care structurile de programare au aceeași sintaxă și aceeași
funcționalitate.
Rolurile de bază ale unui script PHP constau în aceea că scipt -ul poate prelua date trimise de
către o pagină web de la un client (în general, datele pot fi trimise de către o pagină web prin
intermediul formularelor) și de a executa o secvență de program în urma căreia va rezulta un cod
HTML, cod pe care clientul îl va primi sub forma unei pagini web.
18
Clientul nu va avea acces la codul efectiv al script -ului, ci, prin faptul că acesta se află pe server
și se rulează tot pe acesta, va primi direct HTML -ul generat de script.
Una dintre cele mai spectaculoase componente ale multor limbaje de programare, din păcate
lăsată de multe ori în umbră în m ajoritatea cursurilor de programare, constă în crearea și
manipularea imaginilor. Limbajul PHP nu este limitat doar la crearea de output HTML, ci poate
fi folosit și pentru a crea respectiv a lucra cu diferite formate de imagini, incluzând gif, png, jpg.
Ba mai mult, PHP poate genera o imagine sub forma unui flux de date (deci fără a o înregistra
efectiv sub forma unui fișier pe server) direct către browser.
Limbajul PHP este un limbaj de programare destinat în primul rân d Internetului, aducând
dinamica unei pagini web. Este unul dintre cele mai importante limbaje de programare web open –
source (codul sursă este public și gratuit ) și se rver-side (rularea sa nu se efectueze pe computerul
clientului ce acceseaza pagina ). Este unul dintre cele mai folosite limbaje de programare server –
side.
La data de 1 mai 2008,statisticile arătau că este folosit in 20 de milioane de site -uri, ele fiind un
total de peste 70 de milio ane de site -uri active.
Popularitatea de care se bucură acest limbaj de programare se datorează următoarelor sale
caracteristici:
• Familiaritatea – codul limbajului fiind ușor, pentru programatorii care cunosc limbajul C;
• Simplitatea – sintaxa limbajului este destul de liberă. Nu este nevoie de includere de biblioteci
sau de directive de compilare, codul PHP inclus într -un document fiind trecut între niște marcaje
speciale;
• Securitatea – PHP -ul pune la dispoziția dezvoltatorilor un set flexibil și efic ient de măsuri de
siguranță;
• Flexibilitatea – fiind apărut din necesitatea dezvoltării web -ului, PHP a fost modularizat pentru
a ține pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP -ul a
fost integrat pentru nume roasele servere web exitente: Apache, IIS, Zeus, etc.
19
• Gratuitatea – este, probabil, cea mai importantă caracteristică a PHP -ului. Dezvoltarea PHP -ului
sub licența open -source a determinat adaptarea rapidă a sa la nevoile web -ului, eficientizarea și
securizarea codului.
Tipuri de date
PHP suportă opt tipuri primitive de date.
Patru tipuri scalare: boolean, int , float (numere în virgulă mobilă, sau ‘double’) șistring.Două
tipuri compuse: array, obiect.Două tipuri speciale: resource, NULL.
Tipul unei variabile, de obicei nu este stabilit de programator, ci este decis la pornirea procesului
de PHP, în funcție de contextul în care acea variabilă este utilizată .
Variabile
În PHP variabilele sunt reprezentate folosind un semn dollar urmat de numelevariabilei. Numele
variab ilelor sunt case -sensitive.
Variabile predefinite
PHP furnizează un număr larg de variabile predefinite. Multe din aceste variabile,
nu pot fi documetate complet deoarece sunt dependente de serverul pe care rulează, deversiunea
și setarea acestuia precum și de alți factori.
Unele din aceste variabile nu vor fi folosite când PHP rulează în linie de comandă.
Variabile predefinite
PHP furnizează un număr larg de variabile predefinite. Multe din aceste variabile,
nu pot fi documetate complet deoarece sunt depen dente de serverul pe care rulează, deversiunea
și setarea acestuia precum și de alți factori.Unele din aceste variabile nu vor fi folosite când PHP
rulează în linie de comandă.
PHP Superglobals
$GLOBALS -Conține o referință la fiecare variabilă care este în mod curent valabilă
înscopul global al script -ului. Cheile acestui șir sunt numele variabilelor globale.
20
$_SERVER – Reprezintă variabilele setate de serverul de web sau legate direct de mediul
deexecuție al scriptului curent.
$_GET – Reprezintă variabile le oferite scritpt -ului direct prin HTTP GET. Analog vechiuluișir
$HTTP_GET_VARS (care încă este valabil, dar depreciat).
$_POST – Reprezintă variabilele oferite scritpului direct prin HTTP POST. Analog vechiuluișir
$HTTP_POST_VARS (care încă este valabil , dar depreciat).
$_COOKIE – Reprezintă variabilele oferite scritpului direct prin HTTP. Analog vechiului șir
$HTTP_COOKIE_VARS (care încă este valabil, dar depreciat).
$_FILES – Reprezintă variabilele oferite scritpului prin upload -ul de fișiere folosind modul POST
din HTTP. Analog vechiului șir
$HTTP_POST_FILES (care încă este valabil, dar depreciat).
$ _ EN V – Reprezintă variabilele oferite scritpt -ului prin mediu. Analog vechiului șir
$HTTP_ENV_VARS (care încă este valabil, dar depreciat).
$_REQUEST – Reprezintă variabilele oferite scritpt -ului prin mecanismele de input
GET, POST, și COOKIE, deci care nu pot fi de încredere.
$_SESSION – Reprezintă variabilele registrate unei sesiuni a script -ului. Analog vechiului
șir $HTTP_SESSION_VARS (care încă este valabil, dar depreciat).
Folosirea variabilelor statice
O importantă caracteristică a scope -ului variabilei o reprezintă variabila statică.
Ovariabilă statică există în scope -ul funcției locale, dar nu își pierde valoarea când
execuția programului părăsește acest scope. Să considerăm următorul exemplu:
<?php function Test () {$a = 0;echo $a;$a++;} ?>
Această funcție este destul de nefolositoare deoarece de fiecare dată este apelată
săseteze valorea 0 variabilelei $a și să printeze "0".
21
Instrucțiunea $a++ care incrementează variabila nu servește nici unui scop deoarce, de îndată ce
funcția iese, variabila dispare. Pentru folosirea unei funcții de numărare care nuva mai pierde
număratoarea curentă, variabiala $a este declarată statică.
<?php function Test(){stat ic $a = 0;echo $a;$a++;}?>
Astfel, de fiecare dată când funcția Test () este apelată, aceasta va afișa
valoarea variabilei $a și o va incrementa .Variabilele statice oferă, de asemenea, un mod de a
lucra cu funcțiile recursive. Ofuncție recursivă este o funcție care se autoapelează. Trebuie
avută grijă la scrierea unei funcții recursive, deoarece este posibilă realizarea unei recursii
infinite. Trebuie asigurat unmod de a termina recursia. Următoarea funcție recursivă simplă
numără până la 10, folosind variab ila statică $count pentru a știi când să se oprească:
<?php function Test(){static $count = 0;$count++;echo $count;if ($count < 10) {Test ();}$count –
-;}
?>
Formulare HTML (GET și POST)
Când un formular este trimis unui scrip PHP, informațiile din acel form ular
suntautomat transmise scriptului PHP. Sunt mai multe modalități de a accesa
informația, deexemplu:
<form action="foo.php" method="POST">Name: <input type="text" name="username">
<br>Email:
<input type="text" name="email">
<br>
<input type="submit" name="submit" value="Submit me!">
</form>
În funcție de setările și preferințele particulare, sunt multe modalități de a accesadatele din
formulare HTML. Câteva exemple:
<?php
22
$_POST['username'];
$_REQUEST['username'] ;
import_request_variables('p', 'p_');
$p_username
$HTTP_POST_VARS['username' ]; $username;?>
Folosirea unui formular de tip GET este similară, cu deosebirea că se va folosi
variabila predefinită GET în schimb. GET se poate folosi și pentru extragerea informțiilor dinQ U
ERY_STRING (informațiile de după semnul ? din URL). De exemplu, URL -ul
http://www.example.com/test.php?id=3 conține date GET care sunt accesibile prin $_GET['id']
2.3. Prezentarea limbajului de programare Mysql
În ultimul timp, utilizarea bazelor de da te pe Internet a fost des dezvoltat ș i folosit . În prezent
sunt foarte multe aplicații,foarte utile, utilizate, de exemplu: de contorizare, come rcializare
electronică, voturi și bineînțeles aplicații de comunicare.
De unde provine SQL ?
În domeniul de creare și utilizare a bazelor de date relaționale s -a impus existenț a unui limbaj
standard unic care să permită efectuarea operații lor. De aceea , s-a inventat limbajul SQL –
Structured Query Language. “Limbajul a fost supervizat de comisia de standardizare A NSI
(American National Standards Institute), motiv pentr u care se mai numește și ANSI SQL. SQL
nu este un limbaj de firmă, ci el este implementat de o mulțime de SGBD -uri consacrate, cum ar
fi Microsoft Access, Oracle, Microsoft SQL Server și, bineînțeles, MySQL. ”
MySQL este un l imbaj specializat pentru crearea, editarea și gestionarea bazelor de date in
mediul online , având la bază limbajul SQL.
MySQL gestionează baze de date care se găsesc pe un server. Baza de date poate fi foarte lesne
exploatată prin intermediul limbajului PHP, dar și cu alte limbaje (de exemplu Java).
23
Tipurile principale de date ale limbajului MySQL sunt:
a) șiruri de caractere;
b) numerice;
c) dată, oră .
a)Șiruri le de caractere cel mmai des utilizate sunt:
• char[(n)] – reține un șir de caractere de lungime n (fixă). În caz că n nu este precizat,
reține un singur caracter. Ocupă n octeți;
• varchar[(n)] – reține un șir de cel mult 255 de caractere. Ocupă n+1 octeți;
• tinytext[(n)] – este echivalent cu varchar[(n)];
b)Tipuri de date numerice cele mai uzuale sunt :
• tinyint[(n)] – ocupă 1 octet. Rețin e nr. întregi cuprinse între -128..127. Dacă este urmat de
cuvântul unsigned reține numere naturale cuprinse între 0..255;
• smallint[(n)] – ocupă 2 octeți. Reține nr. întregi cuprinse între -32768..32767. Dacă este
urmat de cuvântul unsigned reți ne numere naturale cuprinse între 0..65535;
• mediumint[(n)] – ocupă 3 octeți. Reține nr. întregi cuprinse între -8388608..8388607. Dacă
este urmat de cuvântul unsigned reține numere naturale cuprinse între 0..16777215;
• int[(n)] – ocupă 4 octeți. Reține nr. întregi cuprinse între -2147843648..2147843647. Dacă
este urmat de cuvântul unsigned reține numere naturale cuprinse între 0..4294967295;
• bigint[(n)] – ocupă 8 octeți. Reține nr. întregi cuprinse între -9223372036854775808 și
9223372036854775809. Dacă este urmat de cuvântul unsigned reține numere naturale cuprinse
între 0..18446744073709551615;
• float – ocupă 4 octeți – este echivalentul tipului cu același nume din C/C++;
• double – ocupă 8 octeți – este echivalentul tipul ui cu același nume din C/C++;
24
• decimal(n,d) – numărul este stocat sub formă de șir de caractere. Parametrul n reprezintă
numărul de cifre nenule aflate înaintea virgulei (cu tot cu semnul ’ –’ pentru numerele negative,
dacă este cazul) iar d reprezintă n umărul de zecimale.
c) Tipuri pentru dată și oră:
• year – un câmp de acest tip reține un an calendaristic. Aceștia se introduc ca și șir de caractere;
• time – un câmp de acest tip reține o anumită oră dintr -o zi. Se int roduce sub forma ’hh:mm:ss’;
• date – un câmp de acest tip reține o anumită dată calendaristică. Se introduce sub forma ’yyyy –
mm-dd’;
• datetime – un câmp de acest tip reține o anumită dată calendaristică și o anumită oră. Se
introduce sub forma ’yyyy -mm-dd hh:mm:ss’;
MySQL este un sistem de gestiune a bazelor de date , produs al companiei suedeze MySQL AB
și fiind pe piață sub Licență Publică Generală (GNU ). Este cel mai popular SGBD open -source la
ora actuală, fiind o componentă cheie a stivei LAMP (Linux, Apache,MySQL, PHP).Deși este
folosit f oarte des împreună cu limbajele de programare JAVA,PHP, cu MySQL se pot construi
aplicații în orice limbaj major. Există multe scheme API disponibil e pentru MySQL ce permit
scrierea aplicațiilor în numeroase limbaje de programare pentruaccesarea bazelor de date
MySQL, cum are fi: C, C++, C#, Borland Delphi, Java, Perl, PHP, Python, FreeBasic, etc.,
fiecare dintre acestea folosind un tip spefic API. O interfață de tipODBC denumită MyODBC
permite altor limbaje de programare ce folosesc această interfață,să interacționeze cu bazele de
date MySQL cum ar fi ASP sau Visual Basic.În multe cărți de specialitate este precizat faptul că
MySQL este mult mai ușor deinvățat și folosit decât multe din aplicațiile de gestiune a bazelor de
date, ca exemplucomanda de ieșire fiind una simplă și evidentă: „exit” sau „quit”.
Pentru a administra o bază de date în MySQL se poate folosi modul linie de comandă sau prin
descărcare a de pe internet, o interfață : MySQL Administrator și MySQLQuery Browser.
Un alt instrument de management al acestor baze de date este aplicația SQLManager.MySQL
poate fi rulat pe multe dintre platformele software existente: AIX, FreeBSD, GNU/Linux, Mac
OS X, NetBSD, Solaris, SunOS, Windows 9x/NT/2000/XP/Vista.
25
Serverul de baze de date MySQL este foarte rapid, fiabil și ușor de utilizat. Inițial afost dezvoltat
pentru a manipula baze de date de dimensiuni mari mult mai rapid decâtsoluțiile existente.
MySQL Database Software este un sistem client/server ce constă într-
un server MySQL multithreaded care suportă diferite programe client și biblioteci, unelte
administrative și o gamă largă de interfețe pentru programarea aplicațiilor
(Application Programming Interfaces – APIs)
2.4. Prezentarea limbajului de programare JavaScript
JavaScript (JS) este un limbaj de programare orientat obiect bazat pe
conceptul prototipurilor .[5] Este folosit mai ales pentru introducerea unor funcționalități în
paginile web, codul Javascript din aceste pagini fiind rulat de către browser .
Limbajul este binecunoscut pentru folosirea sa în construirea siturilor web , dar este folosit și
pentru acesul la obiecte încastrate (embedded objects) în alte aplicații. A fost dezvoltat inițial de
către Brendan Eich de la Netscape Communications Corporation sub numele de Mocha, apoi
LiveScript, și denumit în final JavaScript.
În ciuda numelui și a unor similarități în sintaxă, între JavaScript și limbajul Java nu există nicio
legătură. Ca și Java, JavaScript are o sintaxă apropiată de cea a limbajului C , dar are mai multe în
comun cu limbajul Self decât cu Java.
Până la începutul lui 2005, ultima versiune existentă a fost JavaScript 1.5, care corespunde cu
Ediția a 3 -a a ECMA -262, ECMAScript , cu alte cuvinte, o ediție standardizată de JavaScript.
Versiunile de Mozilla începând cu 1.8 Beta 1 au avut suport pentru E4X, care este o extensie a
limbajului care are de a face cu XML , definit în standardul ECMA -357. Versiunea curentă de
Mozilla, 1.8.1 (pe care sunt construite Firefox și Thunderbird versiunile 2.0) suportă JavaScript
versiunea 1.7.
Cea mai des întâlnită utilizare a JavaScript este în scriptarea paginilor web. Programatorii web
pot îngloba în paginile HTML script -uri pentru diverse activități cum ar fi verificarea datelor
introduse de utilizatori sau crearea de meniuri și a lte efecte animate.
26
Browserele rețin în memorie o reprezentare a unei pagini web sub forma unui arbore de obiecte și
pun la dispoziție aceste obiecte script -urilor JavaScript, care le pot citi și manipula. Arborele de
obiecte poartă numele de Document Object Model sau DOM .
Există un standard W3C pentru DOM -ul pe care trebuie să îl pună la dispoziție un browser, ceea
ce oferă premiza scrierii de script -uri portabile , care să funcționeze pe toate b rowserele. În
practică, însă, standardul W3C pentru DOM este incomplet implementat.
Deși tendința browserelor este de a se alinia standardului W3C, unele din acestea încă prezintă
incompatibilități majore, cum este cazul Internet Explorer .
O tehnică de construire a paginilor web tot mai întâlnită în ultimul timp este AJAX , abreviere de
la „Asynchronous JavaSc ript and XML”. Această tehnică constă în executarea de cereri HTTP în
fundal, fără a reîncărca toată pagina web, și actualizarea numai anumitor porțiuni ale paginii prin
manipularea DOM -ului pag inii.
Tehnica AJAX permite construirea unor interfețe web cu timp de răspuns mic, întrucît operația
(costisitoare ca timp) de încărcare a unei pagini HTML complete este în mare parte eliminată.
27
3. Procesarea imaginii
Prelucrarea și analiza imaginilor (num ită adeseori prescurtat doar prelucrarea imaginilor) s -a
născut datorită ideii și necesității de a înlocui observatorul uman printr -o mașină. Este important
de precizat că analiza imaginilor a mers mai departe decât simpla înlocuire a observatorului
uman, deoarece au apărut soluții novatoare pentru probleme cu care acesta nu mai fusese
confruntat -ca în cazul imaginilor non -vizibile (imagini acustice, ultrasonore, radar). După cum se
remarcă , prelucrarea imaginilor înglobează posibilitatea de a dezvolta maș ina totală de viziune,
capabilă să realizeze funcțiile vizuale ale oricărei viețuitoare (desigur, după realizarea a
importanțe dezvoltări teoretice și tehnologice).
“La început, imaginile sunt semnale, dar nu funcții temporale, ci funcții definite pe un do meniu
spațial. Orice imagine este o structură bidimensională (tablou, matrice) de date. Un element al
imagini se numește pixel (cuvânt preluat din engleză, unde provine de la picture element). Aceste
date pot fi numere naturale, reale sau complexe, reprezen tate însă pe un număr finit de biți. După
tipul datelor din acesta structură bidimensională, imaginile prelucrate pot fi împărțite în mai
multe categorii:
• imagini scalare, în care fiecare componentă este un scalar (un unic număr); ca exemple de astfel
de imagini se pot da imaginile monocrome (în care punctele au doar două valori posibile, ce
corespund unui conținut binar al imaginii, în general alb -negru)¸si imaginile cu nivele de gri(de
tipul imaginii de luminanță de pe ecranele televizoarelor alb -negru).
• imagini vectoriale, în care fiecare componență este un vector de numere; cazul particular cel
mai de interes este acela al imaginilor color, în care vectorul are trei elemente(ce corespund celor
trei constituente de bază ale oricărei culori); în gener al, pentru imaginile multicomponenta,
vectorul asociat fiecarui punct din imagine are mai multe elemente (caz ce corespunde imaginilor
preluate în mai multe benzi de frecvență,așa cum sunt imaginile de teledetecție ale sateliților,
imaginile de termodetecti e în benzile de infraroșu…). Tot în categoria imaginilor vectoriale intră
însăși imaginile stereo (o pereche de imagini ale aceleiași scene, luate din unghiuri diferite) și
secvențele de imagini ”[8]
Structura tipică a unui sistem de prelucrarea (evident di gitală) și analiza imaginilor este alcătuită
din punct de vedere funcțional dintr -un număr mic de blocuri;
28
• sistemul de formare a imaginii (de exemplu sistemul de lentile al camerelor de luat vederi):
strânge radiația electromagnetică a obiectului studia t pentru a forma imaginea trăsăturilor de
interes
• convertorul de raditie: convertește radiația electromagnetică din planul imaginii într -un semnal
electric.
Sistemul software specializat care este responsabil cu realizarea efectivă unei sarcini co ncrete
poate fi descompus în mai multe module, nu neapărat bine separate și nu neapărat prezente
împreună: îmbunătățirea, restaurarea, compresia, segmentarea și analiza.
Principiile esențiale legate de implementările practice ale sistemelor de prelucrarea și analiza
imaginilor urmăresc două direcții, cu dezvoltare corelată: implementările software și dispozitivele
hardware (de accelerare).
Programele de uz general permit efectuarea unui mare număr de operații de prelucrarea și analiza
imaginilor, cu numer oși parametri reglabili. Interacțiunea cu operatorul uman este mare și acesta
trebuie să aibă o cali ficare superioară.
Programele de acest tip nu sunt de timp real și în general sunt cuplate off -line cu instalațiile
tehnologice propriuzise, făcând parte mai ales din dotarea laboratoarelor de cercetare și de
analiza calității și conformității. Interfața utilizator este cea care crează diferența între două
categorii de programe, în ceea ce privește modalitatea în care operatorul specifica succesiunea de
operați i de executat. Din acest punct de vedere vom face distincția între menu -driven și flow –
chart driven (deci programe controlate prin meniu sau prin graf deflux).
Deși programarea orientată pe obiecte este un concept destul de nou, evoluția sa a fost deosebit
de spectaculoasă. Probabil că principalul atu al acestei evoluții a fost apariția sistemului de
29
operare Windows a cărui structură este în întregime bazată pe conceptul de obiecte. Programarea
unei aplica ții Windows vă face în mod clar apel la structuri predefinite -clasele de bază aplicație,
fereastră, buton, ¸s.a.m.d. Atunci devine destul de normal să fie proiectate și datele specifice ale
aplicației particulare tot ca structuri de tip obiecte.
Alegerea unui limbaj specific de programare nu mai este totuși o problemă esențială; majoritatea
limbajelor de uz general ingineresc (tehnic) provin din trunchiul comun C / Pascal. Desigur că
există nenumărate variante ale acestor limbaje de bază (C++ Builder, Visual C+ +, Delphi,
Borland C++ și Borland Pascal cu obiecte) și chiar apar limbaje noi (Java, care, deși se revendică
că o aplicație pur distribuită pentru folosirea rețelelor și în special a Internetului, nu este cu mult
diferită ca structură de un C cu clase). P rincipala evoluție a mediilor de programare nu a fost însă
legată de modificarea limbajului în sine (și deci a caracteristicilor de compilare a codului) ci
modificarea stilului în care se crează aplicația specifica, și mai precis, aspectul de interfață.
Cuvâ ntul de ordine actual în implementările software este orientarea -obiect (limbajele C++,
Delphi, Java), insistând mai ales pe aspectele de polimorfism și moștenire pe care le aduce acest
stil de programare. Moștenirea corespunde cazului unor imagini cu struc tură din ce în ce mai
elaborată, pentru care se pot face tot mai multe operații (de tip analiză de formă și clasificare, de
exemplu). Polimorfismul corespunde realizării unor operații cu nume (sau metode de
implementare) identice care să aibă comportări dife rite, în funcție de tipul datelor cărora li se
aplică (funcția de histogramă poate produce, de exemplu, funcția de densitate de probabilitate a
câmpului aleator imagine, în cazul imaginilor cu nivele de gri, aria obiectelor, în cazul imaginilor
binare și n umărul de componente conexe, în cazul imaginilor binare etichetate).
Tehnologia Java, aduce, pe lângă orientarea obiect, ideea de folosire a resurselor distribuite (fie
pe Internet, fiecare surse de multi -procesare). Astfel adevenit posibilă crearea de depo zite de
software specializat, universal executabil (prin mecanismul de applet) pe orice mașină pe care
este disponibil un browser Internet. Marile avantaje anunțate pentru Java (cod portabil, execuție
paralelă, protecție la manipularea defectuoasă a zonelo r de memorie, protecția datelor) sunt
contrabalansate de codul executabil relativ lent ¸si de dimensiunile mari ale codului sursă.
30
3.1. TEHNICI DE ÎMBUNĂTĂȚIRE A IMAGINILOR
Îmbunătățirea imaginilor este o sintagmă generală ce se referă la o clasă largă d e operații al căror
scop este mărirea detectabilității componentelor imaginii. Detectabilitatea componentelor este
legată mai mult de percepția vizuală a unui observator uman decât de o analiză automată
cantitativă. Percepția vizuală de referință este cea a unui expert uman în domeniul aplicației din
care provine imaginea.
Principiul (aproape unanim acceptat) este că îmbunătățirea calității unei imagini se face fără a lua
în considerare nici o informație asupra imaginii originale sau asupra procesului de de gradare
(prin care imaginea nu este suficient de bună). Conform acestui punct de vedere chiar și o
imagine originală poate fi îmbunătățită, obținând o imagine falsificata , dar subiectiv preferabilă .
În general, calitatea subiectivă a unei imagini poate fi apre ciată pe baza contrastului sau
accentuării elementelor de contur (muchii, frontiere, linii, mărgini) și pe baza netezimii în
regiunile uniforme.
Din punctul de vedere al metodelor utilizate, putem distinge mai multe tipur i de operații de
îmbunătățire:
• operații punctuale, prin care se realizează o corespondență de tip “unu la unu” între vechea
valoare a nivelului de gri și noua valoare a acestuia, pentru fiecare pixel al imaginii. Tot în acesta
categorie vom include și operațiile de pseudocolorare, care s e referă la afisarea imaginii folosind
o paletă de culoare modificata.
• operații locale (sau de vecinătate), prin care noua valoare a nivelului de gri într -un pixel este
obținută din vechea valoare a pixelului repectiv și din valorile unor pixeli vecini pixelului
considerat.
• operații integrale, în care noua valoare a unui pixel este dependentă de valorile tuturor pixelilor
imaginii .
31
3.2 Filtrarea Imaginilor
3.2.1. Modificarea neliniară a contrastului
Principalul dezavantaj al tehnicii liniare pe porțiuni prezentate este faptul că
modificarea contrastului este aceea și pe un întreg interval de nivele de gri și nu este
posibilă o modificare neuniformă a contrastului pe întregul interval de nivele de gri
sau în jurul unui anume nivel de gri. Tehnicile neliniare au aceste proprietăți.
În cadrul operațiilor punctuale de îmbunătățire a imaginilor sunt prezentate și
operații aritmetice simple, că de exemplu negativarea.
Negativarea este descrisă de: v = T(u)=L−1−u
Efectul acesteia de modificare a contrastului se bazează doar pe caracteristicile
sistemului vizual uman, pentru care contrastul depinde de diferență de luminozitate
între pixeli aparținând unui obiect, respectiv fundalului, raportată la luminanța
medie a fundalului. O categorie aparte de aplicații în care sunt utile asemenea
inversiuni este analiza imaginilor medicale, care pentru o analiză automată trebuiesc
inversate; un astfel de exemplu este imaginea angiografica din figura
Fig. 3.2
32
3.2.2. Filtrarea liniară
Folosirea măștilor de derivare pe verticală și orizontală prezentate are însă serioase
neajunsuri: dimensiunea lor mică face ca rezultatele să fie extrem de sensibile în
prezența zgomotului. În aceste condiții a apărut naturala ideea de a combinafiltrarea
de derivare cu o filtrare de netezire, care să mai reducă efectele zgomotului.
Considerând zgomotul de tip gaussian, aditiv, filtrarea de netezire are ca efect
secundar mic¸sorarea contrastului frontierelor obiectelor din imagine (efectul de
încețoșare, sau blur). Pentru că în aceste condiții detecția contur urilor să nu fie
afectată, trebuie ca operația de mediere prin care se realizează netezirea să se facă
pe o direcție perpendiculara direcției contururilor căutate
3.2.3. Pseudocolorarea
“Pseudocolorarea este o tehnică de îmbunătățire a vizibilității anumitor comp onente
ale imaginii (sau a imaginii în ansamblu) prin modificarea paletei de culoare cu care
imaginea este afisata (reprezentată). Această inseamnaca pentru anumite nivele de
gri, afi¸sarea nu se va mai face cu culoarea a cărei componente sunt toate egale cu
indexul (nivelul de gri), ci cu o altă culoare. Acesta definitie acoperă însă și cazul
operațiilor de modificare a contrastului prezentate anterior; funcția v = T(u) nu este
altceva decât o funcție de construcție a unei noi palete de culoare pentru aceea și
imagine. Spre exemplu, codul modificarii neliniare de contrast devine:
unsigned int T1,T2,alfa,beta,gri_vechi; gri_nou=(unsigned int *) malloc
(L*sizeof(unsigned int)); for (gri_vechi=0;gri_vechi<T1;gri_vechi++)
gri_nou[gri_vechi]=alfa*gri_vechi/T1; for
(gri_vechi=T1;gri_vechi<T2;gri_vechi++) gri_nou[gri_vechi]=alfa+(undefined –
alfa)*(gri_vechi -T2)/(T2 -T1); for (gri_vechi=T2;gri_vechi<L;gri_vechi++) ”
33
gri_nou[gri_vechi]=beta+(L -1-undefined)*(gri_vechi -T1)/(L -1-T2); for
(gri_vechi=0;gri_vechi<L;gri_vechi++) setpalette(gri_vechi,(color)
gri_nou[gri_vechi]);
Ultima buclă for a codului modifica paletă de culoare pentrufiecare index (intrare) a
acesteia, conform noilor valori calculate. Remarcați cast-ul (schimbarea de tip) la
tipul color; acesta este înserat mai mult ca o măsură de atenționare: culoarea (deci
variabila de tip color) trebuie obținută din scalarul nivel de gri în conformitate cu
regulile de descriere a culorilor valabile în respectivul mod grafic.
3.2.4. Imagini binare
Putem considera că singura categorie de imagini binare de interes sunt imaginile în
albnegru (sau monocrome);
valorile punctelor acestora sunt fie 0 (reprezentând fundalul de culoare albă), fie 1
(reprezentând punctele de interes, de culoare neagră).
Cele două clase de metode de codare pe care le avem în vedere sunt codarea
entropică (metodă de codare Huffman) și metodele de codare on-line (pe flux de
biți); deosebirea dintre aceste metode (la un nivel al implementării) este ca pentru
codarea entropică este necesară parcurgerea și stocarea intermediară a întregii
imagini.
34
4. Descrierea aplicatiei
4.1. Arhitectura Aplicatiei web
4.2. Creearea bazei de date a aplicatiei
4 . 2 . 1 Creearea unei baze de date folosind MAMP
Creearea bazei de date a fost realizata folosind aplicatia MAMP folosind p hpMyAdmin.
Pentru deschiderea aplicatiei phpMyAdmin se porneste MAMP si se aceseaza in browser adresa :
http://localhost:8888/phpMyAdmin/
Fig. 4.2.1
35
In fereastra afisata se va tasta numele noii ba ze de date,in cazul nostru “licenta” si se va apasa
butonul Create:
Fig 4.2.2
Aplicatia va crea o comanda SQL de creeare a unei baze de date si o va trimite servarului.Se va
afisa intodeauna comenzile trimise catre baza de date MySQL.
Fig 4.2.3
Baza de date (licenta) fiind creata,e ava fi o baza de date curenta.Comenzile pentru crearea
tabelelor se vor adresa acesteia.
La fiecare pornire a plicatiei phpMyAdmin,accesarea bazei de date (licenta) se va realiza prin
selectarea acesteia afisat in ppano ul din stanga aplicatiei
36
Fig 4.2.4
4.2.2 Creearea unui tabel al bazei de date
Crearea tabelului ‘user’
Tabelul ‘user’ va contine date de indentificare a utilizatorului.Acest tabel este present in toate
bazele de date accesibile prin Internet.
Creearea un ui tabel se realizeaza concomitant cu definirea structurii sale.
Tabelul va contine 4 campuri.
In vederea crearii comenzii create table,phpMyAdmin va cere introducerea mesajului si tipului
fiecaruia dintre campurile tabelului.
Fig 4.2.2.1
Campurile tab elului ‘user’ sunt userID de tip INT -valoare intreaga,userName de tip VARCHAR
lungime maxima 30, userEmail de tip VARCHAR cu lungimea maxima de 60,userPass de tip
37
VARCHAR de lungime maxima 225.Tipul VARCHAR se foloseste pentru sirurile de caractere
de lungi me variabila.Pentru campul userID s -a precizat ca este PRIMARY si s -a selectat caseta
AUTO_INCREMENT.
Prima caracteristica,PRIMARY indica faptul ca userID este cheie primara.Cheia primara
a tabelului din baza de date are valori diferite de restul articole lor din table si are rolul de
indentificator unic al acestora.
Prorietatea AUTO -INCREMENT indica modul de formare a valorilor campului
userID.Valoarea acestuia pentru un nou articol care urmeaza sa fie adaugat,aceasta crescand
automat,prin incrementarea v alorii corespunzatoare ultimului articol prezent in tabel .
Campul username s -a definit ca fiind INDEX.Impunerea ca index a unui camp faciliteaza
cautarile in tabel effectuate dupa valori ale respectivului camp.
In cazul dat,server -ul MySQL va atasa tab elului ‘users’ un fisier ale carui inregistrari vor contine
perechi de valori username -adresa articol pe HDD.
4.2.2.2
38
4.3. Interfata cu utilizatorul
Aplicatia prin lansarea ei produce aparitia ferestrei principale a paginii Web,care se ocupa de
auten tificarea utilizatorului care doresc sa foloseasca aceasta aplicatie. Accesarea paginii web se
face prin intermediul browser -ului,accesand calea : http://localhost:8888 .
Fig 4.3.1
Daca nu s -a introdus Em ail-ul si sau parola,utilizatorului dupa incercarea de a accesa pagina i se
va arata mesajul: Introduceti e -mail-ul respectiv parola.
39
Fig 4.3.2
Daca user -ul introduce gresit parola sau adresa de e -mail va primi mesajul : Email sau parola
incorecta,va rugam mai incercati….
Fig 4.3.3
In cazul in care utilizatorul incearca sa acceseze site -ul cu o adresa invalida va primi mesajul :Va
rugam introduceti o adresa de e -mail valida
40
Fig 4.3.4
Fiecare utilizator acceseaza pagina utilizand e -mail-ul si parola,dupa care apasa butonul
sau prin apasarea tastei ENTER.
In timpul apasarii butonului Intra in cont,in interiorul codului sursa se intampla mai multe lucruri
pe care utilizatorul nu stie si anume :
➢ Cand utilizatorul introduce informatiile necesar e pentru autentificare(email, parola),este
verifica corectitudinea datelor introduce.Se face interogarea bazei de date,in care se
verifica daca exista e -mailul si parola identica cu cele introduce. Codul interogarii este :
Fig 4.3.5
In cazul afirmativ,s e accepta Email -ul si parola,se va accesa pagina principala.Daca una dintre
date nu a fost introdusa correct sau nu exista in baza de date,utilizatorul va primi una din
mesajele de mai sus.
Din fereastra principal in afara de autentificare,utilizatorii au posibilitatea de a se inregistra.
41
Dupa apasarea butonului ‘Creaza Cont…’, utilizatorului i se va afisa sectiunea urmatoare:
Fig 4.3.5
Dupa completarea fiecarui camp,in cazul afirmativ,se va afisa mesajul : Te -ai inregistrat cu
success.
Fig 4 .3.6
42
In cazul in care ceva nu e bine se va afisa mesaj la fiecare camp in parte, cum ar fi:
➢ Numele trebuie sa aiba minim 3 caractere
➢ Introduceti o adresa de e -mail valida
Sau
Adresa de email trebuie compusa din : aaaaa@domeniu.aaa . Daca nu va fi asa se va primi
mseajul de mai sus.
Sau in cazul in care adresa de e -mail este deja folosita de altcineva.
➢ Parola trebuie sa aiba minim 6 caractere
43
La fiecare inregistrare se face interogare baza de date, folosind codul :
Fig 4.3.7
44
4.4. Accesarea aplicatiei
Dupa introducerea datelor necesare atat in sectiunea de creeare si accesare a contului se va accesa
pagina principal a aplicatiei:
Fig 4.4.1
Accesand pagina de mai sus in spatele ei se face conectarea si interogarea bazei de date:
Fig 4.4.2
45
4.4.1. Prezentarea aplicatiei web
Pagina web contine 3 butoane si anume:
➢ Acasa -apasand butonul, reacceseaza pagina dupa accesare cont
➢ Prelucreaza imaginea -apasand butonul ni se va deschide o alta fereastra unde se va edita
poza urcata pe server.
➢ Bun venit,… – apasand ni se va afisa sectiunea de deconectare.
In pagina mai avem un text care ne face sa intelegem ce inseamna prelucrarea si respective
analizarea imaginilor. Textul il putem vedea in figur a 4.4.1 .
4.5. Prelucrarea imagini in aplicatia web
4.5.1. Structura aplicatiei
Fig 4.5 .1.1
46
Clientul/utilizatorul introduce adresa paginii,in timpul acesta cererea se duce la server,ii afiseaza
clientului/utilizatorului pagina introdusa.
4.5.2. Interfata aplicatie i
Fig. 4.5.2.1
47
Pentru a putea prelucra o imagine, utilizatorul are nevoie de o imagine care o poate urca pe server
prin butonul
. Dupa apasarea butonului se va afisa fereastra necesara pentru a selecta imagina
dorita de utilizator de a o prelucra.
Fig. 4.5.2.2
Acesarea sau rasfoirea pozelor pentru a selecta se face prin butonul
. Dupa selectarea
imaginii dorite,utilizatorul va apasa butonul de upload si se va afisa poza dupa urcare pe server.
48
Fig 4.5.2.3
Daca fisierul selectat e ste in format .jpeg, .gif, .jpg, .png, .pjpeg,operatia de incarcare pe server
este indeplinita cu success.
In cazul in care fisierul selectat nu indeplineste conditiile se va afisa mesajul:
Fig. 4.5.2.4
Procesul de urcare (upload in engleza) a luat nas tere impreuna cu procesul de descarcare
(download in engleza) in anii 1970 facilizand firma BBs prin distributia pe scara larga si punerea
in aplicare a accesului la internet prin dial -up.
Fisierul selectat se incarca pe server si ramane permanent.
In tim pul procesului de urcare, clientul nu vede procesul de urcare/sortare a fisierului selectat.
Codul sursa se afla in fisierul upload.php. Tot in acest fisier gasim si recunoasterea fisierului:
49
Fig 4.5.2.6
Dupa procesul de incarcarea imaginii, clientu lui ii va aparea imaginea incarcata impreuna cu
efectele de procesare a imaginii:
Fig. 4.5.2.5
50
Dupa afisarea imaginii,utilizatorul poate utiliza efectele pozitionate deasupra
butonului
.
Efectele prelucrarii imaginii disponibile sunt :
➢
– Efectul negativ este pentru inversarea albului cu negru si vice -versa;
➢
-Efectul blur este o banda aparenta a obiectelor care se misca rapid intr -o imagine
statica;
➢
-Efectrul brighten (Luminozitate);
➢
-Efectul Colorize(Colorare);
➢
-Efectul Contrast;
➢
-Efectul Edge Detection(Detectarea marginilor);
➢
-Efectul Gray Scale (Alb -Negru);
➢
-Efectul Mean(Valoare de mijloc);
➢
-Efectul Selective Blur;
➢
-Efectul Smothen(Neted);
51
➢
-Efectul Rotate(roteste imaginea in grade de catre utilizator);
➢
-Anuleaza ultimul efect aplic at imaginii;
➢
-Reaplica ultimul efect anulat aplicat imaginii.
Pentru Fiecare efect in parte este construit in limbajul php valoarea lui.
$effects = array(
"neg" => IMG_FILTER_NEGATE,
"blr" => IMG_FILTER_GAUSSIAN_BLUR,
"brg" => IMG_FILTER_BR IGHTNESS,
"clr" => IMG_FILTER_COLORIZE,
"cntr" => IMG_FILTER_CONTRAST,
"edgd" => IMG_FILTER_EDGEDETECT,
"gray" => IMG_FILTER_GRAYSCALE,
"mean" => IMG_FILTER_MEAN_REMOVAL,
"seleb" => IMG_FILTER_SELECTIVE_BLUR,
"smth" => IM G_FILTER_SMOOTH,
);
Dupa aplicarea oricarui efect de catre utilizator,el poate sa revina la imaginea initiala fara a o
reincarca pe server,aceasta fiind deja prezenta.Operatia de salvare a imaginii in dispozitivul
personal se face in urmatorul fel.
De e xemplu:am incarcat imaginea pe server parcurgand toti pasii cu success.Am ales primul
efect,cel negative ș i ne-am hotarat sa o salvam in dispozitivul nostru :
52
Fig. 4.5.2.6
Apasam butonul
,aflat deasupra efectelor si va aparea o fereastra unde vrem sa o
salvam(calea dorita de noi in cazul in care nu avem browser -ul setat pe un folder default).
Fig 4.5.2.7
53
Prin aceasta operatiune,poza noastra editata se descarca din serverul aplicatiei la noi in dispozitiv.
Aceasta fiind inversa procesului de incarcare a fisierului.
5. Concluzie
Importanța Internet ului în zilele noastre este bine cunoscută iar exploatarea oportunitaților
oferite de acesta trebuie sa fie o prioritate pentru o firmă modernă mai ales dacă concurența are
deja prezență online. Un web site costă o singură dată și rămâne permanent online , 24 de ore din
24 cu posibilitatea ca orice client să îl acceseze din orice zonă a lumii. Oricând, conținutul
unui site poate fi gestionat după bunul plac.
La baza aplicației web de procesare a imaginii stă limbaj ul de programare PHP, care este
un limbaj puternic și foarte des folosit. Am ales acest limbaj pentru implementarea aplicației
pentru ca in zilele noastre foarte multe ap licații web sunt distribuite si scrise in limbajul PHP.
Acesta fiind open -source, costurile proiecției fiind foarte scazute. Lume a se schimbă de la o zi la
zi, tehnolog iile se dezvol tă, apar noi și noi aplicații, chiar si un software care ne vor conduce într –
o lume computerizată. Din punctul meu de vedere acest limbaj are un loc important in mediul
online având rolul in dezvoltarea noilor tehnologii . Aplicația web de procesare a imaginii este
doar o mică parte dinaceastă lume imensă a limbajului PHP, dar totuși o parte importanta ,
deoar ece folosirea lui ușurează munca multor oameni cu vârste diferite.
54
5.2. Posibilități de dezvoltare
Versiunea respectivei a aplicației web privind procesarea imaginii nu este versiunea finală, ci
dimpotrivă este prima versiune.
Aplicația poate fi îmbun ătățită, adăugând noi facilități. Iată câteva lucruri noi care ar putea fi
incluse în dezvoltarea acestui program:
➢ Aplicația ar putea fi dezvoltată într -un fel să deservească toate necesitațile unui
utilizator,adică sa fie posibil folosirea acestuia de cătr e toate domeniile in intermediul
online(medical,politie, ș.a.)
➢ O altă dezvoltare ar putea fi adăugarea unei ramuri in aplicație pentru efecte contra –
cost,aceasta adăugând mai multe efecte.
➢ Al treilea punct de devoltare ar putea fi permisiunea de a vedea is toricul imaginilor editate
cat si cele neprocesate dar totusi salvate de fiecare.
➢ O dezvoltare majoră ar fi crearea permisiunii de a șterge imaginile incarcate pe server,mai
mult pentru confidențtialitate
➢ Adaugarea procesului de confirmare e -mail.
➢ Adaugare a procesului de resetare parole.
➢ Adaugarea unui post pay -pal sau card pentru plata.
Acestea sunt doar niște idei de dezvoltare a aplicației web privind procesarea imaginii,dar,având
in vedere progresul tehnologiei din zilele noastre,pot exista si altele sa u pot apărea.
55
Bibliografie
1. [Well2005], Laura Thomson ;Dezvoltarea aplicatiilor WEB cu PHP și MySQL , Editia a II-a
(+CD) ; Editura Teora 2005.
2. [Thom2004], Dezvoltarea aplicatiilor WEB cu PHP și MySQL ; Editura Teora 2004.
3. D e z v ol ta r ea a p li ca t ii lo r WE B fo l o si n d X H T M L, P H P și M y SQ L
4. ;Editura Polirom 2005.
5. [Melo2005], INVATA SINGUR PHP, MYSQL ȘI APACHE ; Editura Corint 2005.
6. http://phpromania.ro
7. http://w3school.com
8. Buzuloiu, V.: Prelucrarea imaginilor: note de curs, Universitatea “Politehnica” Bucure sti,
19985
9. Castleman, K. R.: Digital Image Processing, Prentice Hall, Englewood Cliffs, NJ, 1996
10. Cocquerez, J. P., P hilipp, S. (coord.): Analyse d‘images: filtrage et segmentation, Masson,
Paris, 1995
11. Gonzales, R. C., Woods, R. E.: Digital Image Processing, Addison Wesley, Reading MA,
1992
12. Ministerium für Wirtschaft, Mittelstand und Technologie des Landes
NordrheinWestfa len: Produkte und Dienstleitungen für die Bildverarbeitung. Stand und
Trends, Düsseldorf, 1996
13. Ministerium für Wirtschaft, Mittelstand und Technologie des Landes
NordrheinWestfalen: Stand und Trends der Bidverarbeitung in NRW, Düsseldorf, 1995
56
Anexe
1
2
57
3
5
58
6
7
59
8
9
60
10
11
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: Conf. univ. dr. Doru Constantin Absolvent: Urea Nicolae Adrian 2017 2 UNIVERSITATEA DIN PITEȘTI FAC ULTATEA DE ȘTIINȚE, EDUCAȚIE FIZICĂ ȘI… [630834] (ID: 630834)
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.
