reconstituirea obiectelor 3D în baza senzorilor optici Litera Coli 83 UTM FCIM C – 131 CUPRINS INTRODUCERE …………………………….. [617095]
Mod.
Coala
Nr. document .
Semnăt.
Data
Coala
7
UTM 526.1 451 ME
Elaborat
Grosu M .
Conducător
Guțuleac E.
Consultant
Contr. norm .
Negură V.
Aprobat
Sudacevchi V.
Sistem microcontroler pentru
reconstituirea obiectelor 3D în
baza senzorilor optici
Litera
Coli
83
UTM FCIM
C – 131 CUPRINS
INTRODUCERE ………………………….. ………………………….. ………………………….. ……………………… 9
1. ASPECTUL ACTUAL ÎN DOMENIUL PROCESĂRII IMAGINILOR 3D ……………….. 11
1.1. Generalități din domeniul procesării imaginilor 3D ………………………….. ……………………… 11
1.2. Sistemele GIS un domeniu de aplicare a procesării imaginilor 3D ………………………….. …. 16
2. METODE, MODELE ȘI TEHNICI PENTRU GENERAREA IMAGINILOR 3D ………. 20
2.1. Modele matematice și algoritmi pentru procesarea imaginilor 3D ………………………….. ….. 20
2.1.1. Modele matematice de descriere a suprafetelor de formă liberă ………………………….. . 20
2.1.2. Modele matematice pentru descrierea suprafețelor de rotație ………………………….. ….. 21
2.1.3. Modele de reconstituire a obiectelor 3D în baza suprafețelor de translație …………….. 26
2.1.4. Modele de reconstituire a obiectelor 3D în baza suprafețelor de formă liberă ………… 27
2.1.5. Suprafața biliniară ………………………….. ………………………….. ………………………….. …….. 28
2.1.6. Petice bicubice ………………………….. ………………………….. ………………………….. …………. 29
2.1.7. Suprafețe Hermite (Coons) ………………………….. ………………………….. …………………….. 30
2.1.8. Peticul Ferguson ………………………….. ………………………….. ………………………….. ………. 33
2.1.9. Suprafețe Bezier ………………………….. ………………………….. ………………………….. ………. 34
2.1.10. Peticul bicubic Bezier ………………………….. ………………………….. ………………………….. 35
2.1.11. Suprafețe B -spline ………………………….. ………………………….. ………………………….. ….. 36
2.1.12. Reprezentarea suprafețelor obiectelor 3D prin suprafețe de forma libera …………….. 38
2.1.13. Vizualizarea bazată pe descompunerea suprafeței ………………………….. ……………….. 40
2.2. Argumentarea dispozitivelor MCU pentru implementarea proiectului ………………………… 42
2.3. Argumentarea dispozitivelor senzoriale pentru implementarea proiectului ………………….. 51
3. PROIECTAREA SISTEMULUI PENTRU RECONSTITUIREA OBIECTELOR
3D ÎN BAZA SENZORILOR OPTICI ………………………….. ………………………….. ……………. 59
3.1. Structura sistemului ………………………….. ………………………….. ………………………….. ………… 59
3.2. Schema funcțională a sistemului ………………………….. ………………………….. ……………………. 59
3.3. Modelarea sistemului ………………………….. ………………………….. ………………………….. ………. 61
3.4. Algoritmul de funcționare a dispozitivului MCU ………………………….. …………………………. 69
3.5. Algoritmul de funcționare a sistemuli PC ………………………….. ………………………….. ……….. 70
Mod
Coala
Nr. document
Semnăt .
Data
Coala
8
UTM 526.1 451 ME 4. ARGUMENTAREA ECONOMICĂ A PROIECTULUI DE LICENȚĂ ……………. 73
4.1. Elaborarea bugetului proiectului ………………………….. ………………………….. ……………………. 73
4.2. Planul calendaristic de executare a lucrărilor de pro iectare ………………………….. ……………. 74
4.3. Calculele costurilor de proiectare ………………………….. ………………………….. ………………….. 75
4.4. Cheltuieli privind retribuirea muncii ………………………….. ………………………….. ……………… 77
4.5. Cheltuieli indirecte (alte) ………………………….. ………………………….. ………………………….. …. 77
4.6. Prețul de cost al proiectului ………………………….. ………………………….. ………………………….. 79
CONCLUZII FINALE ………………………….. ………………………….. ………………………….. …………. 80
BIBLIOGRAFIE ………………………….. ………………………….. ………………………….. ………………….. 81
ANEXE ………………………….. ………………………….. ………………………….. ………………………….. …….. 84
Mod
Coala
Nr. document
Semnăt .
Data
Coala
9
UTM 526.1 451 ME Introducere
Pe parcursul ultimelor trei decenii, o tehnologie puternică a schimbat modul în care
oamenii trăiesc și înva ță lucruri în cartierele, localită țile și ora șele lor. Similar multor altor
tehnologii, majoritatea oamenilor nu este con știentă de sistemele geografice informa ționale și
impactul pe care acestea îl au, un impact de o anvergură echivalentă cu utilitatea lor. Chiar
dacă sistemele GIS au înregistrat o cre ștere extraordinară în ultimii 15 ani și sute de mii de
oameni folosesc acum acestă tehnologie, foarte pu țini realizează cum le este afectată indirect
viața cotidiană de aceste sisteme informa ționale.
Principalul component al unui sistem GIS este viz iunea artificială și metodele de procesare
a imaginilor.
Viziunea artificială este procesul de extragere a informa țiilor din imagini, folosind metode
matematice sau metode bazate pe teoria învă țării automate (machine learning), implementate sub
forma unor algoritmi executa ți pe o arhitectură de calcul.
Viziunea artificială se bazează pe:
– Cunoa șterea modelului camerei și a procesului de formare al imaginii, pentru a putea pune în
legătură valoarea pixelilor individuali cu scena reală observată, și pentru a putea combina mai
multe imagini într -un proces de observa ție coerent.
– Impunerea anumitor ordonări asupra unor grupe de pixeli, pentru a -i separa între ei sau pentru a
infera informa ția de formă și a recunoa ște obiecte pe baza trăsăturilor geometrice.
– Analiză de imagini (image analysis).
– Analiza scenei (scene analysis).
– Interpretarea imaginilor (image understanding).
Discipline conexe ale domeniului de viziune artificială:
• Inteligen ța artificială (artificial intelligence);
• Robotica (robotics);
• Procesarea semnalelor (signal processing);
• Recunoa șterea formelor (pattern recognition);
• Teoria controlului (control theory);
Mod
Coala
Nr. document
Semnăt .
Data
Coala
10
UTM 526.1 451 ME • Psihologia (psychology);
• Neuro științele (neuroscience), etc.
Subdomenii ale viziunii artificiale sunt:
– Procesarea imaginilor;
– Recunoa șterea formelor;
– Fotogrammetria, etc.
Teza de licen ță este structurată în 4 capitole de bază, concluzii finale, date bibliografice și
anexe.
În capitolul 1 este descris începutul istoric al procesării imaginilor. S -a efectuat analiza în
domeniul de proiectare, s -a descris aspectul actual al temei în domeniul procesării imaginilor 3D.
S-au descris etapele prelucrării imaginilor și sistemul de pr elucrare digitală a acestora, s -a descris
unul din domeniile de aplicare a prelucrării imaginilor.
În capitolul 2 include analiza metodelor, modelelor și tehnicile de procesare a suprafe țelor
3D, argumentarea dispozitivului MCU și a setului de senzori.
În capitolul 3 s -a efectuat proiectarea și modelarea sistemului în detaliu.
În capitolul 4 al tezei de licen ță are loc argumentarea economică a acesteia.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
11
UTM 526.1 451 ME 1. Aspectul actual în domeniul procesării imaginilor 3D
1.1. Generalită ți din domeniul proces ării imaginilor 3D
Una dintre primele aplica ții ale tehnicilor de prelucrare a imaginilor a fost îmbunătă țirea
transmisiei imaginilor de ziar în formă digitală, prin intermediul cablului submarin, între Londra
și New York.
Îmbunătă țirea metodelor de prelu crare în vederea transmisiei de imagini a continuat și va
continua tot timpul. Cu toate acestea, a fost necesară folosirea capabilită ților oferite de
calculatoarele numerice și de programele spa țiale pentru a aduce în prim -plan poten țialul
conceptelor de p relucrare a imaginilor [7].
Din 1964 până în prezent progresele în domeniul prelucrării imaginilor au fost
impresionante. Pe lângă aplica țiile în tehnica spa țială, aceste tehnici se folosesc, la ora actuală,
într-o multitudine de alte aplica ții, care necesită folosirea unor metode capabile să îmbunătă țească
informa ția vizuală, în vederea optimizării analizei și interpretării de către observatorul uman. În
medicină, spre exemplu, metodele computerizate de prelucrare fac posibilă îmbunătă țirea
contrastul ui sau codarea intensită ților (nivelurilor de gri) imaginilor monocrome în culori, pentru
ușurarea interpretării radiografiilor sau a altor tipuri de imagini biomedicale.
Un alt domeniu major de aplica ție al tehnicilor de prelucrare a imaginilor este anali za lor
cu ajutorul calculatorului. Scopul, în acest caz, este extragerea informa ției într -o formă cât mai
potrivită pentru prelucrarea pe calculator. Adesea, rezultatele analizei prezintă asemănări foarte
reduse cu caracteristicile obi șnuite ale imaginilor , indispensabile ochiului uman pentru interpretare
sau în țelegere. Domeniile tipice de utilizare a analizei pe calculator sunt recunoa șterea
caracterelor, viziunea artificială industrială, folosită pentru asamblarea și inspec ția vizuală a
produselor, prelu crarea automată a amprentelor, analizele automate de imagini spa țiale și 3D [8,9].
Grafica pe calculator este un domeniu modern cu multiple aplica ții practice în diverse
domenii de activitate, care pot fi realizate datorită dezvoltării disciplinelor matema tice specializate
în această direc ție.
Prelucrarea imaginilor prevede:
• îmbunătă țirea informa ției vizuale în vederea optimizării analizei și interpretării de către om, cu
aplica ții în diverse domenii cum ar fi: medicină (trecerea de la imagini alb/negru la imagini color,
prelucrarea imaginilor biomedicale), ecologie (studiul poluării utilizând imagini
aeriene),criminalistică, apărare, industrie etc.;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
12
UTM 526.1 451 ME • extragerea informa țiilor într -o formă internă pentru analiza cu ajutorul calculatorului a
informa țiilor video, în recunoa șterea caracterelor, a formulelor chimice sau matematice, în
verificarea calită ții produselor, recunoa șterea pre țurilor (coduri de bare), recunoa șterea
amprentelor și a fe ței, în sortarea coresponden ței, în meteorologie, apărare etc.
Reprezentarea imaginilor digitale.
O imagine digitală este o func ție f(x,y) care a fost discretizată atât în coordonate spa țiale,
cât și ca strălucire. Ea poate fi considerată ca o matrice la care indicele rândurilor și coloanelor
identifică un punct din i magine, iar elementul corespunzător al matricei reprezintă nivelul de gri
în punctul respectiv. Elementele unei asemenea re țele digitale sunt numite elemente de imagine
sau pixeli.
În general, în diferite aplica ții se folosesc imagini de diverse forme și dimensiuni dar,
prelucrarea digitală este mult facilitată dacă se folosesc matrice pătratice iar numărul nivelurilor
de gri se alege ca putere întreagă a lui 2.
Etape ale prelucrării de imagini .
Prelucrarea digitală a imaginilor presupune o succesiune de et ape de procesare hard și soft,
precum și de implementare a unor metode teoretice. Figura 1.1 ilustrează faptul că obiectivul final
este găsirea unei solu ții pentru o problemă, cu mijloace ținând de prelucrarea de imagini. În
exemplul avut în vedere, “probl ema" este textul de pe etichete, iar “obiectivul" este citirea și
recunoa șterea textului de pe fiecare etichetă. Rezultatul dorit în acest caz este, în final, un șir de
caractere alfanumerice.
Figura 1.1. Etape fundamentale în prelucrarea digitală de imagini.
Prima etapă în acest proces este achizi ția de imagine. Aceasta necesită un senzor de
imagine și capacitatea de a digitiza semnalul de la ie șirea acestuia. Senzorul poate fi o cameră de
televiziune al b-negru sau color, care produce o imagine completă la fiecare 1/25 secunde, sau o
Mod
Coala
Nr. document
Semnăt .
Data
Coala
13
UTM 526.1 451 ME cameră cu scanare liniară, producând la un moment dat o singură linie dintr -o imagine; în acest
caz, mi șcarea cu viteză uniformă a obiectului prin fa ța scanerului duce la ob ținerea unei imagini
bidimensionale. Dacă la ie șirea camerei rezultă un semnal analogic, este necesară digitizarea lui
cu ajutorul unui convertor analog -numeric. Natura senzorului utilizat este dependentă de aplica ția
avută în vedere – în cazul exemplului l uat în considerare, un scaner liniar este suficient pentru
achizi ția datelor [12 -14].
După ob ținerea imaginii digitale, următoarea etapă este preprocesarea acesteia. Scopul
primordial al preprocesării este îmbunătă țirea imaginii în sensul măririi șanselor de succes ale
prelucrărilor ulterioare. În exemplul dat, preprocesarea constă în aplicarea unor algoritmi de
îmbunătă țire a contrastului, cură țare de zgomot și izolare a regiunilor, a căror textură (structură a
pixelilor) indică o asemănare cu informa ția alfanumerică avută în vedere.
Etapa următoare constă în segmentarea imaginii, respectiv împăr țirea acesteia în păr ți
constituente sau în obiecte distincte. În general, segmentarea este una dintre cele mai dificile etape
în prelucrarea digitală de imagini. P e de o parte, algoritmii sofistica ți de segmentare, cu șanse mari
de selectare a regiunilor de interes, necesită calcule complicate și, deci, un timp îndelungat. Pe de
altă parte, însă, algoritmii simpli sau insuficient elabora ți nu se pot aplica cu șanse mari de succes.
În cazul recunoa șterii de caractere, rolul -cheie al segmentării este extragerea caracterelor
individuale sau ale cuvintelor de pe fondul imaginii.
Rezultatul segmentării este, de obicei, un șir de intensită ți ale pixelilor, reprezentând fie
conturul regiunii de interes, fie întreaga regiune. În fiecare caz este necesară conversia datelor într –
o formă mai potrivită pentru prelucrarea pe calculator.
Prima decizie ce trebuie luată este dacă datele trebuie să fie reprezentate ca un contur sau
ca o regiune completă: reprezentarea ca și contur este justificată în cazul în care prelucrarea
urmăre ște eviden țierea caracteristicilor de formă (col țuri, inflexiuni etc.), pe când reprezentarea ca
regiune este mai potrivită când se urmăre ște studiul caracteristicilor interne ale regiunii, cum ar fi
textura sau structura internă. În unele aplica ții, cele două tipuri de reprezentare coexistă, ca în cazul
recunoa șterii de caractere, care necesită adesea algoritmi baza ți pe forma conturului, pe structura
și pe alte proprietă ți interne ale regiunii analizate.
Alegerea modalită ții de reprezentare a datelor este urmată de specificarea metodei de
descriere a acestora, astfel încât caracteristicile de interes să fie scoase în eviden ță cu prioritate.
Descrierea sau selec ția caracteristicilor reprezintă tocmai procesul de selectare a
caracteristicilor, având ca rezultat o informa ție cantitativă sau caracteristici ce diferen țiază o clasă
Mod
Coala
Nr. document
Semnăt .
Data
Coala
14
UTM 526.1 451 ME de obiecte de altele. Ultima etapă, este constituită de recunoa șterea și inter pretarea datelor.
Recunoa șterea reprezintă procesul de clasificare a unui obiect într -o anumită categorie, pe baza
informa ției (descriptori) rezultate în urma descrierii imaginii segmentate. Interpretarea presupune
găsirea unei anumite semnifica ții pentru un ansamblu de obiecte recunoscute.
Vizualizarea imaginii rezultate în urma prelucrării se poate face după fiecare etapă a
acesteia. Este de remarcat, de asemenea, că majoritatea aplica țiilor prelucrărilor de imagini au o
structură mult mai simplă și nu ne cesită interac țiuni de complexitatea celor prezentate în Figura
1.1. De fapt, în unele cazuri nici nu sunt necesare toate modulele prezentate în figură. Spre
exemplu, în aplica ții de îmbunătă țiri de imagini în vederea măririi percep ției vizuale a
observato rului uman, prelucrarea se opre ște, de obicei, după etapa preprocesării. În general,
prelucrările care includ recunoa ștere și interpretare – spre exemplu recunoa șterea unor caractere –
sunt asociate cu aplica ții de analiză a imaginilor, unde obiectivul est e extragerea automată sau
semiautomată de informa ții din imagini.
Prelucrarea imaginilor este un domeniu foarte complex și în continuă dezvoltare, făcându –
se cercetări continue pentru realizarea unor algoritmi meni ți să vină în întâmpinarea problemelor
ce apar permanent.
La ora actuală acest proces este deschis și s-au elaborat metode noi pentru realizarea aplica țiilor
vitale în multe domenii de activitate.
Prelucrarea imaginilor digitale presupune folosirea unor tehnici exprimate, de obicei, sub
forma uno r algoritmi. Din această cauză, cu excep ția achizi ției și redării imaginilor, majoritatea
celorlalte func ții de prelucrare pot fi implementate soft.
Din punctul de vedere al programelor utilizate, pe pia ță este disponibil la ora actuală un număr
semnificativ de asemenea programe de prelucrare. În combina ție cu alte pachete de programe (de
grafică computerizată, de exemplu), ele constituie un foarte util punct de plecare pentru
soluționarea unor probleme specifice de prelucrare de imagini. Solu țiile ob ținute prin
implementare soft sunt, ulterior, transferate (portate) pe plăci specializate de prelucrare hard,
pentru ob ținerea unei viteze superioare.
Prelucrările de imagini se caracterizează prin faptul că folosesc tehnici specifice; cu toate
acestea , metode care duc la rezultate foarte bune în unele aplica ții, sunt total inadecvate în altele.
Ceea ce pune, de fapt, la dispozi ție hard -ul și programele soft disponibile la ora actuală este un
punct de pornire în dezvoltarea unor aplica ții specifice, car e necesită însă o muncă de cercetare și
dezvoltare foarte serioasă.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
15
UTM 526.1 451 ME Sisteme de prelucrare digitală a imaginilor.
Elementele unui sistem de uz general, capabil să realizeze prelucrări de imagini, sunt
prezentate în Figura 1.2.
Figura 1.2. Elementele func ționale de bază ale unui sistem de prelucrare digitală a imaginilor.
În vederea achizi ționării de imagini și transformării lor în imagini digitale sunt necesare
două elemente: un dispozitiv (senzor) sensibil într -o anumită gamă a spectrului energetic
elect romagnetic (de exemplu, benzile corespunzătoare razelor x, ultraviolete, vizibile sau
infraro șii) și care produce la ie șire un semnal electric propor țional cu energia acestor radia ții, și un
digitizor, care converte ște semnalul analogic de la ie șirea senzo rului în formă digitală [16,20].
O categorie importantă de video -senzori o constituie cei folosi ți în domeniul vizibil: camerele
video cu vidicon sau cu dispozitive videocaptoare integrate de tip CCD. Func ționarea camerelor
video cu vidicon se bazează pe principiul fotoconductibilită ții: o imagine focalizată pe suprafa ța
tubului produce un relief de conductibilită ți propor țional cu distribu ția de străluciri din imaginea
optică. Un fascicul de electroni focalizat pe suprafa ța posterioară a țintei fotosensib ile a tubului
explorează punct cu punct această suprafa ță și, prin neutralizarea sarcinilor electrice, creează o
diferen ță de poten țial care produce pe un electrod colector un curent propor țional cu relieful de
străluciri de pe fa ța anterioară a țintei. I maginea digitală este ob ținută prin e șantionarea și
cuantizarea acestui semnal.
Dispozitivele videocaptoare integrate sunt compuse din elemente semiconductoare
discrete, numite foto -capacită ți MOS, care dau la ie șire un poten țial propor țional cu intensitat ea
luminii incidente. Există două tipuri de asemenea dispozitive: liniare și matriciale. Un senzor liniar
constă dintr -un șir de asemenea foto -capacită ți semiconductoare și poate produce o imagine
bidimensională prin mi șcarea relativă între scenă și detect or.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
16
UTM 526.1 451 ME Un senzor matricial este compus dintr -o matrice de fotocapacită ți MOS și poate capta o
imagine într -un mod similar unui tub videocaptor. Tehnologia utilizată în dispozitivele
videocaptoare integrate se bazează pe circuitele cu transfer de sarcină (CCD – "Charge Coupled
Devices").
Un dispozitiv videocaptor liniar (scaner liniar) CCD este compus din șiruri de
fotocapacită ți MOS, por ți de transfer a sarcinilor din elementele fotosensibile în regi ștrii de
transfer și o poartă de ie șire folosită pentru transferul semnalului din regi ștrii de transfer spre un
amplificator de ie șire.
Dispozitivele videocaptoare CCD matriciale sunt similare cu senzorii liniari, cu excep ția
organizării fotocapacită ților într -o matrice și a por ților/regi ștrilor de transfer ver tical care separă
între ele coloanele de fotocapacită ți. Con ținutul fotoelementelor pare sunt transferate secven țial în
regiștrii de transfer vertical și apoi în registrul de transfer orizontal. La rândul lui, acesta transferă,
prin intermediul unei por ți, conținutul unei linii într -un amplificator de ie șire. Repetând procedura
pentru liniile impare se ob ține al doilea câmp al unui cadru de imagine între țesută. Scanarea se
repetă în acela și mod de 25 de ori într -o secundă.
Problema comunica ției în prelucrar ea digitală de imagini implică, pe de o parte,
comunicarea locală între sisteme de prelucrare și comunicarea la distan țe mari, pe de altă parte.
Hard -ul și soft -ul pentru comunica ții locale este oferit, în general, de facilită țile re țelelor de
calculatoare , cu toate că rata de transmisie necesară pentru imagini este mult mai mare decât pentru
alte tipuri de transmisii de date.
Comunicarea la distan țe mari reprezintă însă și la ora actuală o problemă deschisă și
eforturile ce se fac în acest sens din punctul de vedere al cercetării și dezvoltării sunt uria șe.
Metodele de prelucrare a imaginilor digitale sunt într -o continuă dezvoltare, iar rezultatele
obținute în urma noilor descoperiri sunt aplicate în diverse domenii, în unele cazuri fiind de o
importan ță majoră [20].
1.2. Sistemele GIS un domeniu de aplicare a procesării imaginilor 3D
GIS este acronimul în limba engleză pentru Sisteme Informationale Geografice:
Geographic Information Systems(SUA), Geographical Information Systems(Marea
Britanie,Austr alia,Canada), Geographical Information Science (academic). Michael F.Goodchild,
profesor la Universitatea din California, Departamentul de geografie define ște GIS -ul ca
fiind: o formă particulară a Sistemelor Informatice aplicată datelo r geografice. Un ansamblu
de echipamente, programe și proceduri proiectat pentru stocarea, administrarea, manipularea,
Mod
Coala
Nr. document
Semnăt .
Data
Coala
17
UTM 526.1 451 ME analiza, modelarea și vizualizarea datelor spa țiale pentru rezolvarea problemelor de planificare
complexa și administrare.
Mai pe larg, un sistem GIS este un sistem folosit pentu modelarea informa ției,
proceselor și structurilor, care reflectă lumea reală, inclusiv evenimentele trecute, pentru a putea
ințelege, analiza și gestiona resurse și facilit ăți. Un sistem GIS poate fi descris ca un sistem de
gestiune a unei baze de date, care de regulă prezintă utilizatorului datele într -un mod interactiv
grafic, care poate fi interogată și analizată.
Un GIS reprezintă un system compus din componenete hardwar e, software și proceduri
destinate șă achizi ționeze, administreze, manipuleze, analizeze și producă date cu referin ță spa țială
pentru a rezolva probleme complexe de planificare și management. Asemeni oricărui sistem, GIS –
ul se comportă ca o orchestră, alcă tuită din mai multe componente în care fiecare element are rolul
său bine stabilit.
Elementele componenete ale oricărui sistem GIS sunt patru:
1. Componenta hardware
2. Componenta software
3. Datele
4. Personalul
Componenta hardware. Include calculatoarele și celelate componente fizice, pe care GIS –
ul rulează, sunt manipulate datele sau folosite pentru analize. GIS -ul poate opera singular pe un
computer personal (PC), sau pe o sta ție de lucru conectată printr -o rețea. Computerul trebuie să
aibă o mare puter e de procesare, o memorie suficientă și un timp de răspuns și executare a
instruc țiunilor rapid. Numărul de instruc țiuni și de date sunt foarte extinse în GIS. În această
categorie se includ toate componentele care asigură achizi ția și prelucrarea datelor de intrare,
stocarea, dar și afișarea informa țiilor prelucrate. Se include următoarele componente: scanere,
imprimante, plotere, etc.
Componenta software. Include pachetele de programe capabile să recepteze, prelucreze
și analizeze, datele, dar să ofere și opțiuni pentru afi șarea rezultatelor. Pentru a fi agreat de
utilizatori, un soft trebuie să ofere o interfa ță grafică prietenoasă și să dea posibilitatea operatorului
să intervină prin corectarea datelor în toate fazele de execu ție. Un alt atu al unui sof t GIS, este să
accepte o mare varietate de date, și în formate diversificate, care să poată fi convertite și aduse în
Mod
Coala
Nr. document
Semnăt .
Data
Coala
18
UTM 526.1 451 ME formatul de bază. Soft -ul GIS trebuie să aibă o largă aplicabilitate și să poată fi adaptat în domenii
foarte diversificate (Figura 1.3).
Figura 1.3. Interfa ța unui sistem GIS.
Datele. Datele utilizate în GIS – pot proveni din surse diferite și pot îmbrăca aspecte dintre
cele mai diversificate. Datele pot fi ob ținute prin ridicări topografice, captare cu GPS -ul,
stereorestitu ție, prelucrare de imagini sarelitare , sau pot fi digitizate de pe planuri și har ți
topografice (curbe de nivel, hidrografie, etc.). Toate aceste date pentru a putea fi utilizate în GIS
trebuie să aibă referin țe spa țiale, sau să li se atribuie aceste coord inate în timpul pregătirii.
Varietatea datelor este de asemenea foarte largă în func ție de domeniul de interes: date topografice,
clinatologice, demografice, tehnice, financiare, etc. Calitatea produsului rezultat dintr -o prelucrare
GIS, depinde de validit atea datelor care au fost introduce. Avantajul major al uni GIS este că datele
odată ob ținute pot avea aplicabilitate multiplă, ele pot fi actualizate și utilizate în comun de către
mai mul ți utilizatori. De exemplu datele vectoriale cu re țeaua stradală a unei localită ți pot fi
folosite deopotrivă de: sistemele de transport în comun, serviciile de distribu ție a utilită ților,
serviciile de urgen ță, departamentele de planificare urbană, etc.
Domeniile de aplica ție ale GIS sunt nenumărate, de la sănătate, fina nciar -bancar,
criminalistică, turism, geologie, mediu etc. Pentru o exemplificare concretă amintim aplicarea
metodei GIS pentru evaluarea cazurilor de methemoglobinemie infantilă în perioada 1985 –
2016 prin care se identifică zonele de risc. Un alt exemplu de aplicabilitate, de data aceasta în
domeniul mediului îl constitue biologii care folosesc transmi țătoare radio și antene satelitare
Mod
Coala
Nr. document
Semnăt .
Data
Coala
19
UTM 526.1 451 ME pentru a trasa rutele migra țiilor de caribu și urși polari, pentru a sus ține programul de protec ție
a animalelor. Î n GIS rutele migra țiilor au fost indicate de diferite culori pentru fiecare lună
timp de 21 luni. Cercetătorii au folosit apoi GIS pentru a suprapune traseele migra ției pe
harta planului de dezvoltare al ex ploatărilor petroliere pentru a determina posibilitatea
interferen ței cu traseele animalelor. Din punct de vedere al criminalită ții, un sistem GIS poate
determina zonele cu un grad ridicat al infrac țiunilor, în func ție de situa țiile antecedente, de
categoriile de oameni care tră iesc în respectivele zone. Aceste estimări ajută în luarea deciziilor
asupra ariilor în care ar trebui întărită securitatea și siguran ța cetă țeanului, sau ar trebui
implementate proiecte care să promoveze în rândul po pulației necesitatea educa ției copiilor.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
20
UTM 526.1 451 ME 2. Metode, modele și tehnici pentru generarea imaginilor 3D
2.1. Modele matematice și algoritmi pentru procesarea imaginilor 3D
Una dintre cele mai importante probleme în sistemele de proiectare și fabrica ție asistate de
calculator este modelarea suprafetelor 2D și 3D. Modelele trebuie să ofere flexibilitate în
proiectare, care este în esen ță o activitate de natură creativă, să conducă la implementări simple
ale calculelor proprietă ților suprafe țelor și nu în ultimul rând, să permită descrierea unor forme
oricât de variate.
Suprafe țele 3D pot fi definite :
clasic : prin ecua ții implicite sau explicite (exemple: sfera, cilindrul, paraboloidul, s.a.);
ca suprafe țe de formă liberă;
Suprafe țele de formă liberă , la rândul lor se împart în două categorii:
Suprafe țe obținute prin baleiere spa țială :
suprafe țe de rota ție ;
suprafe țe de transla ție;
Suprafe țe definite prin puncte și vectori tangen ți :
suprafe țe de interpolare, care con țin toate punctele date;
suprafe țe de aproximare, a căror formă și pozi ție spa țială este determinată de
punctele date;
2.1.1. Modele matematice de descriere a suprafetelor de formă liberă
Suprafe țele de formă liberă se reprezintă prin ecua ții parametrice :
(2.1)
unde u și w sunt definite în intervalele
umin<= u <=umax si wmin<= w <=wmax . (2.2)
Avantajele oferite de reprezentarea prin ecua ții parametrice:
ușurința în modificarea formei suprafe ței;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
21
UTM 526.1 451 ME celelalte ecua ții ( implicite , explicite ) nu permi t definirea unei suprafe țe prin func ții cu
valori multiple;
transformările 3D pot fi aplicate direct pe ecua țiile parametrice;
extensia reprezentării de la 2D la 3D constă în adăugarea ecua ției pentru coordonata z.
2.1.2. Modele matematice pentru descrierea suprafe țelor de rota ție
Se numesc astfel acele suprafe țe care se ob țin prin rota ția unui obiect plan ( o linie, o curba,
un poligon etc.) în jurul unei axe 3D ( axa Ox, Oy, Oz sau o dreaptă oarecare în spa țiu).
Rotind cu 360 de grade un segment de dreaptă în jurul unei axe paralele cu el ( fără ca
segmentul să se suprapună pe axă) se generează o suprafa ță cilindrică circulară. Dacă segmentul
rotit este coplanar cu axa, dar nu și paralel sau perpendicular pe axă, atunci prin rota ția sa cu 360
de grade se va genera suprafa ța unui trunchi de con circular drept.
Fie p(u) ecua ția parametrică a obiectului generator, în acest caz un segment de dreaptă P1P2, în
planul XOY :
p(u)= P1 + u ( P2 – P1 ) , cu 0<= u <= 1 (2.3)
sau, în coordonate omogene,
p(u)=[ x1+u(x2 -x1) y1+u(y2 -y1) 0 1 ], cu u [0,1] (2.4)
Efectuând o rota ție în jurul axei Oy se va ob ține un trunchi de con.
Fie matricea de rota ție R(φ ) :
(2.5)
Figura 2.1. Rezultatul rota ției modelului (2.5).
Mod
Coala
Nr. document
Semnăt .
Data
Coala
22
UTM 526.1 451 ME Atunci, ecua ția suprafe ței generate prin rota ție în jurul axei Oy va fi:
S( u, φ ) =p( u )*R( φ ) = [ (x 1+u(x 2-x1).cos( φ )) (y 1+u(y 2-y1)) -(x1+u(x 2-x1).sin( φ )) 1 ]
cu u [0,1] , φ [0, 2П ] (2.6)
Dând valori particulare pentru u și φ se ob țin puncte de pe suprafa ță respectivă.
În cele ce urmeaz ă se va exemplifica generarea diferitelor tipuri de suprafe țe de formă
liberă afi șându -le prin metoda « wire -frame» :
se calculează un set de puncte de pe suprafa ță;
se unesc punctele calculate prin segmente de dreaptă, astfel încât suprafa ța să fie
aproximată prin cele 2 familii de curbe ortogonale în spa țiul parametric ; de exemplu,
pentru suprafa ța din Figura 2.1, cele 2 familii de curbe sunt :
curbe de u constant; și
curbe de φ constant.
Fie semicercul de raza r , considerat în planul xOy, și centrat în originea sistemului de coordonate.
Ecua ția sa parametrică este:
0<= u <= П (2.7)
Prin rota ția sa în jurul axei Ox se ob ține o sferă. Matricea de rota ție este:
(2.8)
Ecua ția parametrică a suprafe ței se ob ține astfel:
S ( u , φ )= p( u )*Rx( φ ) = [ r*cos( u) r*sin( u)*cos( φ ) r*sin( u)*sin( φ ) 1 ]
cu u [0,П ] și φ (0,2П ) (2.9)
Mod
Coala
Nr. document
Semnăt .
Data
Coala
23
UTM 526.1 451 ME Ecua ția în forma pe componente va fi :
x(u,φ) = r*cos(u)
y(u,φ) = r*sin(u)*cos(φ) (2.10)
z(u,φ) = r*sin(u)*sin(φ)
Fie cercul considerat în planul xOy cu centrul xc,yc și raza r, având ecua țiile parametrice:
(2.11)
Considerând rota ția în jurul axei Oy, cu matricea de rota ție Ry( φ ) ( prezentată anterior ), se va
obține următoarea ecua ție parametrică a suprafe ței :
S( u, φ )= p(u)*Ry( φ )= [ x(u) y(u) 0 1] * Ry( φ ) =[ (xc+r*cos(u))*cos( φ ) (yc+r*sin(u)) –
(xc+r*cos(u)*sin( φ )) 1 ]
cu u [0,2П ] si φ [0,2П ] (2.12)
Se va obtine astfel un tor:
Figura 2.2. Rezultatul rota ției modelului (2.11).
Ca obiect generator poate fi folosit orice obiect, chiar și o curbă de formă liberă.
Curbele de formă liberă, reprezentate ăn forma geometrică matricială sunt definite astfel:
P(u)= U * M * G , unde: (2.13)
U = [ u3 u2 u 1] – curba cubica;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
24
UTM 526.1 451 ME M = matrice spe cifica tipului de curba;
G = vectorul conditiilor geometrice;
Fie curba Bezier cubică, cu ecua ția parametrică :
P(u) = U* M B * [ P 0 P1 P2 P3]T , unde :
P0 ,P1 ,P2 ,P3 sunt cele 4 puncte care determina o curba Bezier;
MB este matricea de baza Bezier;
Suprafa ța obținută prin rota ție în jurul axei Oy este definită astfel:
SB = P(u) * R( φ) sau
(2.14)
Figura 2.3. Rezultatul rotirii modelului (2.14).
Implementarea modelului de afi șare a unei suprafe țe de rota ție:
typedef struct{
float x;
float y;
float z;
}p3d;
typedef struct{
float x;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
25
UTM 526.1 451 ME float y;
}p2d;
int npo = 30; // nr puncte ob generator
int nrot= 30; // nr rotatii
p3d ps[npo][nrot]; // puncte suprafata
// Calculeaza puncte de pe obiectul generator si le me moreaza pe prima coloana a matricei ps
// Exemplu: obiectul generator este o curba Bezier definita prin punctele:
p2d P0, P1, P2, P3, p;
float du = 1.0/(npo -1);
for (int i =0, u=0; u<=1; u+=du, i++)
{p = Bezier(u); // vezi cursul ref. la curbe
ps[i][0].x = p.x; ps[i][0].y = p.y; ps[i][0].z = 0;
}
// Memoreaza pe celelalte coloane ale matricei ps punctele obtinute prin rotatie in jurul axei OY
// fi= 2*PI/nrot este pasul unghiular de rotatie in jurul axei OY
float cosfi = cos(2*PI/ nrot);
float sinfi = sin(2*PI/nrot);
for (int j = 1; j< nrot; j++)
for (i =0; i<npo; i++)
{ ps[i][j].x = ps[i][j -1].x* cosfi;
ps[i][j].y = ps[i][j -1].y;
ps[i][j].z = – ps[i][j -1].x * sinfi;
}
// Aplica punctelor din ps transformare de rotatie in jurul axei OX
for(i=0; i<npo; i++)
for(j=0; j<nrot; j++)
{ ps[i][j].y = ….
ps[i][j].z = …..
}
// Afisare suprafata prin polilinii : meridiane (curbe de fi constant) si paralele (curbe de u
constant)
// Se efectueaza o proiectie ortografica aspura punctelor 3D
// Afisare meridiane
for(j=0; j<nrot; j++)
{ glBegin(LINE_STRIP); // polilinie
for(i=0; i<npo; i++)
glVertex3D(ps[i][j].x, ps[i][j].y, ps[i][j].z);
glEnd();
}
// Afisare paralele
for(i=0; i<npo; i ++)
{ glBegin(LINE_STRIP); // polilinie
for(j=0; j<nrot; j++)
glVertex3D(ps[i][j].x, ps[i][j].y, ps[i][j].z);
glVertex3D(ps[i][0].x, ps[i][0].y, ps[i][0].z);
Mod
Coala
Nr. document
Semnăt .
Data
Coala
26
UTM 526.1 451 ME glEnd();
}
2.1.3. Modele de reconstituire a obiectelor 3D în baza suprafe țelor de transla ție
O altă metodă de a genera o suprafa ța 3D constă în translatarea unui obiect ( linie, poligon,
curba, etc. ) de -a lungul unei traiectorii. Traiectoria poate fi o dreaptă sau o curbă în spa țiu.
Suprafe țele astfel ob ținute sunt numite "Sweep Surfaces" .
Metoda este larg folosită în sistemele de proiectare și fabrica ție asistate de calculator, fiind
adecvată definirii interactive a suprafe țelor și corpurilor. Generarea suprafe țelor prin rota ție este
un caz particular al metodei de baleiere spa țială, în care traiectoria este circulară.
Cea mai simplă suprafa ță de transla ție se ob ține translatând un segment de dreaptă. Știind
că ecua ția unui segment determinat de punctele P 1(x1,y1,z1) si P 2(x2,y2,z2) este :
p(u) = P 1 + u ( P 2 – P1) = [ (x 1+u(x 2-x1)) (y 1+u(y 2-y1)) (z 1+u(z 2-z1)) ]
cu u [0 , 1] (2.15)
Ecua ția suprafe ței de transla ție va fi:
S( u, t ) = p(u) * T( t ) , cu u [0 , 1] si t [0 , 1]; (2.16)
Unde T(t) este matricea transformării de transla ție. De exemplu, pentru o transla ție cu o distan ță d
de-a lungul unei axe paralele cu axa OZ, matricea T este:
0<= t <= 1
Figura 2.4. Exemple de translatare.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
27
UTM 526.1 451 ME Transla ția pe o direc ție D[ dx, dy, dz] este definită de matricea:
0<= t <= 1
Dacă se dore ște efectuarea suplimentară și a unei rota ții, în fiecare pas de transla ție, cu transla ția
pe direc ția axei OZ, matricea T(t) devine:
Figura 2.5. Exemplu de transla ție dublă.
2.1.4. Modele de reconstituire a obiectelor 3D în baza suprafe țelor de formă liberă
În proiectarea asistată de calculator sunt frecvente cazurile în care se dore ște ob ținerea unei
suprafe țe care trece printr -un set de puncte sau a cărei formă este controlată printr -un set de puncte.
În primul caz, suprafa ța este numită de interpolare, în cel de -al doilea, de aproximare.
Model area suprafetelor de interpolare / aproximare se bazează pe no țiunea de « petic » de
suprafata (" patch "). Un petic este o colec ție de puncte marginite de 4 curbe. Cordonatele lor sunt
definite prin func ții continue de 2 variabile :
cu u1 <= u <=u2 si w1 <= w <= w2 (2.17)
Mod
Coala
Nr. document
Semnăt .
Data
Coala
28
UTM 526.1 451 ME Un dreptunghi este un petic de suprafa ță plană, a cărui ecua ție parametrică este :
X(u,w) =P0.x + u(P2.x – P0.x)
Y(u,w)= P0.y + w(P1.y – P0.y) 0<= u,w <=1 (2.18)
Z(u,w) = 0
Figura 2.6. Exemplu de formă liberă.
X(u,w) =a + u(b – a)
Y(u,w)= c + w(d -c) 0<= u,w <=1 (2.19)
Z(u,w) = 0
Punctele suprafe ței se ob țin prin interpolare biliniară un caz particular de suprafa ță biliniara.
2.1.5. Suprafa ța biliniară
Suprafa ța biliniară este definită prin patru puncte situate arb itrar în spa țiu, care se asociază
colțurilor patratului unitate în spa țiul parametric (u,w):
P0(0,0,1), P1(1,1,1), P2(1,0,0), P3(0,1,0)
Figura 2.7. Generarea suprafe țelor biliniare.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
29
UTM 526.1 451 ME Ecua ția parametrică este:
(2.20)
Suprafa ța biliniară con ține o infinitate de segmente de curbă ortogonale în spa țiul parametric.
Pot fi vizualizate prin :
– două familii de curbe;
– rețea de fa țete conectate, cu vârfurile pe suprafa ță.
2.1.6. Petice bicubice
În general, un « petic » de suprafa ță de interpolare/aproxima re este descris parametric prin
polinoame de grad 3. Spunem în acest caz că este un petic bicubic . Gradul 3 este gradul minim
care poate asigura respectarea unor restric ții de continuitate la jonctiunea dintre 2 petice, astfel
încât să putem modela suprafe țe complexe prin re țele de petice.
Un petic bicubic con ține 2 familii de curbe cubice (Hermite, Bezier, B -Spline, etc. )
ortogonale în spa țiul parametric.
O curba cubică este definită prin ecua ția parametrică :
P(u) =a3*u3+a2*u2+a1*u+a0 ; (2.21)
Sau, matri cial:
(2.22 )
Peticul bicubic este definit prin ecua ția:
(2.23)
0<= i, j<=3 numită și forma algebrică sau, matricial:
p(u,w)= U * A * WT , unde : (2.24)
Mod
Coala
Nr. document
Semnăt .
Data
Coala
30
UTM 526.1 451 ME U= [ u3 u2 u 1 ];
W= [ w3 w2 w 1 ];
aij se numesc coeficien ți algebrici.
Peticele bicubice se deosebesc prin modul în care sunt definite geometric (condi țiile geometrice
pe care le sastisfac).
2.1.7. Suprafe țe Hermite (Coons)
O curba Hermite este definită prin : coordonatele punctelor extreme și tangentele în
punctele extreme. Ecua ția geometrică a unei curbe Hermite (Coons) este următoarea :
p(u) = [ F 1(u) F 2(u) F 3(u) F 4(u) ] * [ P 0 P1 P0u P 1u ]T (2.25)
unde Fi(u) sunt func țiile de ponderare (sau de amestec) specifice curbelor Hermite.
Func țiile de ponderare determină contribu ția condi țiilor g eometrice în calculul punctelor de pe
curbă. Fie:
F(u) = [F 1(u) F 2(u) F 3(u) F 4(u)]
din care extragem matricea MH, matricea de bază Hermite (specifica curbelor Hermite).
F(u) = U*M H (2.26)
Atunci, ecuatia curbei Hermite se poate rescrie astfel:
p(u) = U*M H*GH (2.27)
O suprafa ță Hermite este definită prin :
coordonatele col țurilor suprafe ței,
Mod
Coala
Nr. document
Semnăt .
Data
Coala
31
UTM 526.1 451 ME vectorii tangen ți în cele 4 col țuri,
vectorii de rasucire.
În continuare vom folosi următoarele nota ții :
P00= p(0,0);
P01= p(0,1);
P10= p(1,0);
P11= p(1,1);
vectorii tangen ți la suprafa ța ( câte 2 pentru fiecare col ț al peticului):
Pu00=puuw(0,0);
Pw00=pwuw(0,0);
………………..
unde puuw este derivata par țială în raport cu u iar pwuw este derivata par țială în raport cu w.
Vectorii de răsucire ( câte unul pentru fi ecare col ț ) :
Puw00, Puw01,Puw10,Puw11 , unde
(2.28)
Imaginea unui astfel de petic este prezentată în Figura 2.8.
Figura 2.8. Vectorii de răsucire a suprafe ței.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
32
UTM 526.1 451 ME Peticul Hermite con ține 2 familii de curbe Hermite, ortogonale în spa țiul parametric.
Coordonatele col țurilor și vectorii tangen ți definesc curbele mă rginitoare ale peticului. De
exemplu:
p0w = F(u)* [ P 00 P01 P00w P01w ]T
pu0 = F(u)* [P 00 P10 P00u P10u ]T
Pentru curbele Hermite, condi țiile geometrice se reprezintă printr -un vector.
Pentru peticele Hermite, condi țiile geometrice sunt cuprinse într -o matrice, SH, alcătuită astfel :
Impunând în forma algebrică, generală pentru peticele bicubice, condi țiile geometrice care
definesc peticul Hermite, rezultă 16 ecua ții vectoriale din car e se obtin cei 16 coeficien ți algebrici.
Inlocuind expresiile lor în forma algebrică și apoi grupând termenii după variabilele prin care sunt
reprezentate condi țiile geometrice, ob ținem forma geometrică :
p(u,w) = [ F 1(u) F 2(u) F 3(u) F 4(u) ] S H [ F1(w) F 2(w) F 3(w) F 4(w) ]T
unde F 1, F2, F3, F4 sunt func țiile de ponderare pentru curbele Hermite.
Ecua ția se poate rescrie :
p(u,w) = F(u) S H F(w)
dar, F(u) = U* M H si F(w) = W* M H. (2.29)
Rezultă forma (ecua ția) geometrică matricială a peticului Hermite:
p(u,w) = U * M H * S H * M HT * WT (2.30)
în care SH conține condi țiile geometrice care definesc suprafa ța, iar MH este matricea de bază
Hermite.
Forma algebrică matricială este:
p(u,w)= U * A * WT
Mod
Coala
Nr. document
Semnăt .
Data
Coala
33
UTM 526.1 451 ME deci, A = M H * S H * M HT (2.31)
În majoritatea aplica țiilor se folosesc suprafe țe determinate prin mai mult de 4 puncte. Acestea se
pot ob ține, de exemplu, prin compunere din petice Hermite. Continuitatea la jonc țiunea peticelor
se poate impune prin condi țiile geometrice ale peticelor.
Dezavantajul peticelor Hermi te este că definirea se face prin vectori tangen ți și vectori de
răsucire, ele fiind astfel incomode pentru aplica țiile de proiectare asistată de calculator interactive.
2.1.8. Peticul Ferguson
Peticul Ferguson este un caz particular al peticului Hermite, în care vectorii de rasucire
sunt nuli (p 00uw = p 01uw = p 10uw = p 11uw = 0 ). La jonc țiunea dintre 2 F -petice se poate asigura numai
continuitatea de ordinul 1. Aceasta poate conduce la suprafe țe care nu sunt suficient de netede
pentru unele aplica ții, dar peticele de acest tip sunt u șor de construit și modificat, fiind utile în
multe situa ții.
Peticul de suprafa ță definit prin 16 puncte.
Cele 16 puncte se pun în coresponden ță unor valori prestabilite ale variabilelor u și w, de exemplu
: 0, 1/3, 2/3, 1, ca în Figura 2.9.
Figura 2.9. Reconstituirea suprafe țelor în baza a 16 puncte.
În acest caz, ecua ția parametrică a suprafe ței este :
p(u,w) = U*N*P*NT*WT , în care (2.32 )
U = [ u3 u2 u 1 ]
W = [ w3 w2 w 1 ]
Mod
Coala
Nr. document
Semnăt .
Data
Coala
34
UTM 526.1 451 ME
Specificarea peticelor prin 16 puncte este atrăgătoare pentru aplica țiile de proiectare
asistată de calculator, dar în compunerea peticelor de acest tip se poate asigura numai continuitatea
de ordin 0 la frontiera de jonc țiune (coinciden ța punctelor care definesc frontiera).
2.1.9. Suprafe țe Bezier
O suprafa ță Bezier este alcatuită din două familii de curbe Bézier, ortogonale în spa țiul
parametric.
Ecua ția parametrică a unei curbe Bezier definită prin n+1 puncte este :
0<= u <= 1 (2.33)
unde Bi,n(u) este polinomul Bernstein de gradul n.
Ecua ția parametrică a peticului Bezier definit prin ( m+1 x n+1 ) puncte este :
0<= u, w <= 1 (2.34)
În practică se folosesc curbele cubice Bezier și suprafe țele bicubice Bezier, acestea fiind
satisfăcătoare din punct de vedere al continuită ții geometrice.
Cubica Bezier are ecua ția:
p(u) = (1 -u)3 * P 0 + 3 * u * (1 -u)2 * P 1 + 3 * u * (1 -u) * P 3 + u3 * P 3 (2.35)
iar forma matricială este :
Mod
Coala
Nr. document
Semnăt .
Data
Coala
35
UTM 526.1 451 ME p(u) = [ F 1(u) F 2(u) F 3(u) F 4(u) ] * [ P 0 P1 P2 P3 ]T. (2.36)
sau
p(u) = F(u)* G B (2.37)
F(u) se descompune astfel :
unde ultima este matricea de bază Bezier, notată M B. Putem scrie ecua ția parametrică în forma
matricială :
p(u) = U * M B * G B (2.38)
Matricea de bază, M B, este aceea și pentru toate curbele Bezier, iar G B este cea care diferă de la o
curbă la alta.
2.1.10. Peticul bicubic Bezier
Definit prin 4×4 puncte de control :
Ecuatia matricială:
p(u,w) = U * M B * S B * M BT * WT (2.39)
SB este matricea punctelor care determină peticul Bezier. Ea are forma :
Figura 2.10. Rezultatul aplicării peticului bicubic Bezier (2.3 9).
Mod
Coala
Nr. document
Semnăt .
Data
Coala
36
UTM 526.1 451 ME Un petic Bezier bicubic este determinat de 16 puncte , numite puncte de control.
Peticul con ține numai 4 dintre acestea (col țurile : P 00, P03, P30, P33), celelalte controlând
forma suprafe ței.
Figura 2.11. Punctele de control a suprafe ței.
O altă formă a ecua ției parametrice este :
p(u,w) = [ (1 -u)3 3u(1-u)2 3u2(1-u) u3 ] * S B * [ (1 -w)3 3w(1 -w)2 3w(1 -w) w3 ]T (2.40 )
Peticul Bezier are urmatoarele avantaje :
a. este definit doar prin puncte,
b. se pot defini col țurile suprafe ței,
c. se pot defini tangentele la curbele marginitoare ale suprafe ței, prin alegerea
punctelor de control care definesc frontierele,
d. proprietatea de inchidere convexa ( peticul este con ținut în poliedrul convex
determi nat de punctele de control),
e. se poate ac ționa interactiv asupra formei sale prin deplasarea punctelor de control,
f. calculele necesare pentru divizarea suprafe ței sunt simple,
g. are proprietatea de invariantă afină,
h. are forma poligonului de control.
Dezavantaj :
Suprafa ța Bezier, ca și curba Bezier, nu poseda proprietatea de control local . Astfel,
deplasarea unui punct de control are efect asupra formei intregii suprafe țe, chiar dacă s -ar dori o
modificare locala a formei.
2.1.11. Suprafe țe B-spline
Suprafe țele B-spline sunt, ca și suprafe țele Bezier, suprafe țe de aproximare definite numai
prin puncte.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
37
UTM 526.1 451 ME O curbă B -spline se ob ține prin alipirea mai multor segmente de curbă (Figura 2.12).
Figura 2.12. Curba Bspline de grad 2.
Ecua țiile care definesc segmentele de curbă B -spline uniformă, periodică, de grad doi și trei pot fi
scrise în modul următor :
Pi3 = [ u2 u 1 ] * M S3 * [ P i-1 Pi Pi+1 ] (2.41 )
unde P i-1, Pi si P i+1 sunt punctele de control
0<= u <=1 si 1 <= i < =n -1 și
Pi4 = [ u3 u2 u 1 ] * M S4 * [ P i-1 Pi Pi+1 Pi+2 ] (2.42)
0<= u <=1 și 1 <= i < =n -1
Aceste ecua ții se pot generaliza în forma :
Pi = U k * M Sk * P k, 1<= i <= n+2 -k
Pk = { P j | i-1 <= j <= i+k -2 } (2.43)
pentru k=3 curba B -spline de ordinul 2
pentru k=4 curba B -spline de ordin 3 (cubica).
O suprafa ța B-spline definită prin m x n puncte de control se ob ține prin alipirea mai multor petice
bipatratice sau bicubice. Ecua ția unui astfel de petic este :
pij(u,w) = U k * M k * P kl * M lT * W lT (2.44 )
unde 1 <= i < m+2 -k , 1 <= j < n+2 -l si u, w [0,1]
Matricea P kl este o parte din matricea punctelor de control care definesc o suprfata Bspline si are
forma:
Pkl = { P ab | i-1 <= a <= i+k -2; j-1 <= b <= j+l -2}
Mod
Coala
Nr. document
Semnăt .
Data
Coala
38
UTM 526.1 451 ME Pentru l=4 și k=4 ob ținem ecua ția peticului de suprafa ță bicubică B -spline. Deci, fiecare segment
de suprafa ță bicubică B -spline este determinat de 4×4 puncte de control (Figura 2.13).
Figura 2.13. Suprafete B -spline bipatratice.
2.1.12. Reprezentarea suprafe țelor obiectelor 3D prin supr afețe de forma libera
Suprafa ța unui obiect 3D poate fi reprezentată fie poliedral (re țea poliedrală – fete conectate
prin vârfuri) fie prin suprafe țe de formă libera.
Avantajele reprezentării prin suprafe țe de forma liberă sunt :
a. este analitică (facilitează calculul proprietă ților suprafe ței),
b. este mai economică (o aceiasi rezolu ție a reprezentării necesită mai pu ține puncte
),
c. permite interactivitatea cu mai mare usurin ță decât în reprezentarea poliedrală,
d. este mult mai flexibilă în unele opera ții cu solide, cum ar fi deformarile.
Vizualizarea suprafe țelor de formă liberă.
Sunt două metode principale de afi șare a suprafe țelor de forma liberă :
afișare wireframe : suprafa ța S(u,w) este aproximată prin cele două familii de curbe ortogonale
în spa țiul parametric (curbe de u=const și curbe de w=const).
afișare prin fe țe opace : suprafa ța este aproximată printr -o rețea de fe țe conectate prin vârfuri:
Vârfurile sunt puncte de pe suprafa ța, S(u i, wj),
Fiecare fa ță este un patrulater care conectează 4 pu ncte vecine de pe
suprafa ță,
Suprafa ța este afi șată aplicând un algoritm de eliminare a părtilor
nevizibile,
Deoarece fe țele nu sunt plane, pentru o mai bună aproximare a
suprafe ței, se poate recurge la:
Mod
Coala
Nr. document
Semnăt .
Data
Coala
39
UTM 526.1 451 ME triunghiularizarea fe țelor;
divizarea fe țelor pâ nă la ob ținerea de fe țe plane ( pe baza unui criteriu de planeitate) sau
fețe care se proiectează într -un singur pixel;
Pentru calculul punctelor de pe suprafa ță se poate folosi ecua ția matricială :
p(u,w) = U*M*G* MT* WT , (2.45)
unde G este matricea condi țiilor geometrice, specifică suprafe ței
iar M este matricea specifică tipului suprafe ței (Hermite, Bezier, B -spline)
sau
p(u,w) = [F 1(u) F 2(u) F 3(u) F 4(u)] * G * [F 1(w) F 2(w) F 3(w) F 4(w)]T. (2.46)
0<= u, w <=1
unde F1, F2, F3, F4 sunt func țiile de ponderare, specifice tipului suprafe ței.
Divizarea suprafe ței se face recursiv. La fiecare pas suprafa ța se divide în punctul (u=0.5 și w=0.5),
rezultând patru subpetice.
Algoritmul de vizualizare petic Bezier, prin divizarea suprafe ței până la nivel de petic care
se proiectează într -un singur pixel:
Pentru vizualizarea suprafe ței se folose ște volumul încadrator al peticului, care este
un paralelipiped cu fe țele paralele cu planele principale ale sistemului de
coordonate 3D.
Vârfurile de minim și de maxi m ale acestui paralelipiped se ob țin ca minim
respectiv maxim dintre coordonatele celor 16 puncte de control, știind că peticul
Bezier este inclus în poliedrul convex determinat de cele 16 puncte de control.
Algoritmul de afisare este urmatorul:
pentru fie care pixel p al imaginii{
afisareBezier(S,p); // S fiind matricea punctelor de control
}
void afisareBezier(supraf S,Pixel p) {
calcul volum incadrator al lui S;
proiectie volum incadrator; // proiectia se va numi PS
daca (PS nu intersecteaza suprafata p ixelului p) atunci
Mod
Coala
Nr. document
Semnăt .
Data
Coala
40
UTM 526.1 451 ME return;
daca (PS este inclusa in supraf pixelului p ) atunci
{
se determina punctul suprafetei care se
proiecteaza in pixel ca medie aritmetica a celor 4
colturi ale peticului Bezier ;
se calculeaza o normala in acel punct, apoi o
culoare folosind normala respectiva
se afiseaza pixelul in culoarea determinata;
return ;
}
divizeaza suprafata S in S1, S2, S3, S4 ;
afisareBezier(S1,p);
afisareBezier(S2,p);
afisareBezier(S3,p);
afisareBezier(S4,p);
}
2.1.13. Vizualizarea bazată pe descompunerea suprafe ței
Divizarea unei suprafe țe poate fi uniformă sau neuniformă.
a. Uniformă
Ne propunem un anumit număr de diviziuni chiar dacă într -unul din pa șii “neterminali”
unul din petice satisface condi ția de planeitate.
b. Neuniformă (adaptivă)
Dacă, la un pas, unul din petice este plan nu -l mai divizam.
Această divizare este mai rapidă,
Însă la afi șarea peticelor adiacente care au fost divizate la nivele diferite
pot să apară rupturi (laturile patrulaterelor ca re aproximează peticele nu
corespund).
Algoritmul Lane – Carpenter:
Efectuează o divizare adaptivă a suprafe ței,
Mod
Coala
Nr. document
Semnăt .
Data
Coala
41
UTM 526.1 451 ME Imbină afi șarea cu divizarea. În acest fel se evită memorarea tuturor fe țelor rezultate din
divizarea recursivă a suprafe ței, până la satisfa cerea criteriului de planeitate.
Imaginea este generată linie cu linie.
Se folosesc 3 liste:
LP – lista peticelor (fe țelor),
LPA – lista peticelor active (proiec țiilelor sunt intersectate de linia curentă),
LPG – lista peticelor folosite pentru generare a liniei imagine curenta.
Algoritmul este urmatorul:
initilizare LP;
initilizare LPA;
pentru fiecare linie imagine
{
actualizare LPA ;
pentru fiecare (P i din LPA)
{ daca (P i "este plan")
atunci
introduce P i in LPG;
altfel
{ divizare P i in P ij cu i=1,2 si j=1,2;
pentru fiecare P ij
daca (P ij este intersectat de linia imagine
curenta)
atunci
introducem P ij in LPA;
altfel
introducem P ij in LP;
}
}
genereaza linia imagine curenta folosind peticele din LPG;
}
Mod
Coala
Nr. document
Semnăt .
Data
Coala
42
UTM 526.1 451 ME Concluzii. În rezultatul anali zei fectuate în acest punct al capitolului 2 s -au identificat 3
metode și modele matematice pentru reconstituirea și afișarea suprafe țelor 3D. Acestea sunt:
Suprafe țele Bezeir, Suprafe țe B-spline și Reperezentarea și Vizializarea suprafe țelor bazată pe
descompunerea până la forma liniară. Algoritmii men ționați în acest capitol vor fi implementa ți în
produse program pentru reconstituirea obiectelor 3D.
2.2. Argumentarea dispozitivelor MCU pentru implementarea proiectului
Pe măsură ce procesul de miniaturizare a continuat, a fost posibil ca majoritatea
componentelor necesare realizării unei astfel de structuri să fie încorporate (integrate) la nivelul
unui singur microcircuit (cip). Astfel că un microcontroler ar putea fi d escris ca fiind și o solu ție a
problemei controlului cu ajutorul a (aproape) unui singur circuit.
Legat de denumiri și acronime utilizate, a șa cum un microprocesor de uz general este
desemnat prin MPU (MicroProcessor Unit), un microcontroler este, de regul ă, desemnat ca MCU,
deși semnifica ția ini țială a acestui acronim este MicroComputer Unit.
O defini ție, cu un sens foarte larg de cuprindere, ar fi aceea că un microcontroler este un
microcircuit care incorporează o unitate centrală (CPU) și o memorie împre ună cu resurse care -i
permit interac țiunea cu mediul exterior.
Resursele integrate la nivelul microcircuitului ar trebui să includă, cel pu țin, următoarele
componente:
a. o unitate centrală (CPU), cu un oscilator intern pentru ceasul de sistem
b. o memorie local ă tip ROM/PROM/EPROM/FLASH și eventual una de tip RAM
c. un sistem de întreruperi
d. I/O – intrări/ie șiri numerice (de tip port paralel)
e. un port serial de tip asincron și/sau sincron, programabil
f. un sistem de timere -temporizatoare/numărătoare programabile
Este p osibil ca la acestea să fie adăugate, la un pre ț de cost avantajos, caracteristici specifice
sarcinii de control care trebuie îndeplinite:
g. un sistem de conversie analog numerică(una sau mai multe intrari analogice)
h. un sistem de conversie numeric analogic și/sau ie șiri PWM (cu modulare în durată)
i. un comparator analogic
j. o memorie de date nevolatilă de tip EEPROM
k. facilită ți suplimentare pentru sistemul de temporizare/numărare (captare și
comparare)
Mod
Coala
Nr. document
Semnăt .
Data
Coala
43
UTM 526.1 451 ME l. un ceas de gardă (timer de tip watchdog)
m. facilită ți pentru optimizarea consumului propriu
Un microcontroler tipic mai are, la nivelul unită ții centrale, facilită ți de prelucrare a
informa ției la nivel de bit, de acces direct și ușor la intrări/ie șiri și un mecanism de prelucrare a
întreruperilor rapid și eficient.
Utilizarea unui microcontroler constituie o solu ție prin care se poate reduce dramatic
numărul componentelor electronice precum și costul proiectării și al dezvoltării unui produs.
Toate aplica țiile în care se utilizează microcontrolere fac parte din cate goria a șa ziselor
sisteme încapsulate -integrate (“embedded systems”), la care existen ța unui sistem de calcul
incorporat este (aproape) transparentă pentru utilizator.
Pentru ca utilizarea lor este de foarte ori sinonimă cu ideea de control microcontrolere le
sunt utilizate masiv în robotică și mecatronică. Conceptul de mecatronică este pană la urmă
indisolubil legat de utilizarea microcontrolerelor.
Automatizarea procesului de fabrica ț ie-produc ție este un alt mare beneficiar: CNC
Computerised Numerical Controls -comenzi numerice pentru ma ș inile unelte, automate
programabile -PLC, linii flexibile de fabrica ție, etc.). Indiferent de natura procesului automatizat
sarcinile specifice pot fi eventual distribuite la un mare număr de microcontrolere integrate î ntr-
un sistem unic prin intermediul uneia sau mai multor magistrale.
Printre multele domenii unde utilizarea lor este practic un standard industrial se pot
menționa: în industria de automobile (controlul aprinderii/motorului, climatizare, diagnoză,
sisteme de alarmă, etc.), în a șa zisa electronic ă de consum (sisteme audio, televizoare, camere
video și videocasetofoane, telefonie mobil ă, GPS -uri, jocuri electronice, etc.), în aparatura
electrocasnică (ma șini de spălat, frigidere, cuptoare cu microunde, asp iratoare), în controlul
mediului și climatizare (sere, locuin țe, hale industriale), în industria aerospa țială, în mijloacele
moderne de măsurare – instrumenta ție (aparate de măsură, senzori și traductoare inteligente), la
realizarea de periferice pentru ca lculatoare, în medicină.
Există la ora actuală un număr extrem de mare de tipuri constructive de microcontrolere.
Un criteriu de clasificare care se poate aplica întotdeauna este lungimea (dimensiunea) cuvântului
de date. Func ție de puterea de calcul dorit ă și de alte caracteristici se pot alege variante având
dimensiunea cuvântului de date de 4, 8,16 sau 32 de bi ți (există chiar și variante de 64 de bi ți!).
Nu este obligatoriu ca dimensiunea cuvântului de date să fie egală cu dimensiunea unui cuvânt
mașină (cuvânt program). Există și multe variante zise dedicate, neprogramabile de utilizator la
Mod
Coala
Nr. document
Semnăt .
Data
Coala
44
UTM 526.1 451 ME nivel de cod ma șină, strict specializate pe o anumită aplica ție, prin intermediul codului
preprogramat și al resurselor hardware, utilizate pentru comunica ții, co ntrolul tastaturilor,
controlul aparaturii audio/video, prelucrarea numerică a semnalului, etc.
Arhitectura unită ții centrale de calcul (CPU) este unul din elementele cele mai importante
care trebuie avut în vedere în analiza oricărui sistem de calcul. Pri ncipalele concepte luate în
considerare și întâlnite aici sunt următoarele:
a. Arhitecturi de tip " von Neumann "
Cele mai multe microcontrolere sunt realizate pe baza acestei arhitecturi de sistem.
Microcontrolerele bazate pe această arhitectură au o unit ate centrală (CPU) caracterizată de
existen ța unui singur spa țiu de memorie utilizat pentru memorarea atât a codului instruc țiunilor
cât și a datelor ce fac obiectul prelucrării. Există deci o singură magistrală internă (bus) care este
folosită pentru prel uarea a instruc țiunilor (fetch opcod) și a datelor; efectuarea celor două opera ții
separate, în mod secven țial, are ca efect, cel pu țin principial, încetinirea opera ț iilor. Este
arhitectura standard (cea mai des întâlnită) și pentru microprocesoarele de u z general.
b. Arhitecturi de tip " Harvard "
La această arhitectură exist ă spa ții de memorie separate pentru program și date. În
consecin ță ar trebui să existe și magistrale separate (de adrese și date) pentru codul instruc țiunilor
și respectiv pentru dat e. Principial există astfel posibilitatea execu ției cvasiparalele (suprapunerii)
a celor două opera ții men ționate anterior. Codul unei instruc țiuni poate fi preluat din memorie în
timp ce se execută opera ț iile cu datele aferente instruc țiunii anterioare. Este posibilă (cel pu țin
teoretic) o execu ție mai rapidă, pe seama unei complexită ți sporite a microcircuitului, mai ales
atunci când există și un pipeline. Este arhitectura standard pentru procesoarele numerice de semnal
(DSP). Datorit ă costului mare al implementării unei astfel de arhitecturi, în cazul
microcontrolerelor se întâlne ște mai ales o arhitectură Harvard modificată, cu spa ții de memorie
separate pentru program și date, dar cu magistrale comune pentru adrese și date
Majoritatea microcontrolerelor pot fi trecute sub control soft în stări speciale cum ar fi: în
așteptare (STAND -BY), inactiv ("IDLE") sau oprit ("HALT", "POWER DOWN"), denumirile
acestor stări diferind și func ție de fabricant. În aceste moduri starea CPU, con ținutul R AM-ului
intern, starea I/O -urilor poate fi conservată în condi țiile unei tensiuni de alimentare reduse (fa ță de
cea nominală) și deci al unui consum mult redus. Flexibilitatea acestui sistem este strans legata de
faciltitatile si programabilitatea sistemul ui de generare a ceasului de lucru.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
45
UTM 526.1 451 ME Toate microcontrolerele au un număr oarecare de intrări – Inputs / ie șiri numerice -Outputs
organizate sub forma unor porturi I/O; conexiunile exterioare sunt bidirec ționale sau
unidirec ționale, unele sunt multifunc ț ionale (se oferă func ții alternative pe acela și pin), unele pot
avea o capacitate sporită de a absorbi curent (de exemplu pentru comanda directă a unui LED, cu
IOL max = – 20mA), etc.
În afară de acest set de intrări/ie șiri de uz general, pentru interfa ț a cu mediul exterior se
oferă o serie de alte facilită ți importante de intrare/ie șire cum ar fi: UART (Universal
Asynchronous Receiver Transmitter) este un port serial bidirec țional destinat implementării unui
protocol clasic de comunica ție asincron; USART (Universal Synchronous Asynchronous Receiver
Transmitter) este un port similar, dar care permite implementarea și a unui protocol sincron cu
obținerea unor viteze mai mari de comunica ț ie; SCI (Serial Communications Interface) este un
circuit de tip UART îmbun ăt ățit, definit și utilizate de firma Freescale(Motorola). LIN (Local
Interconnect Network) reprezintă o implementare particulară a unui protocol de comunica ție
asincron, utilizată în industria de automobile ca o alternativă de mică viteză dar cu pre ț scăzut
pentru magistrala și protocolul CAN .
Conectivitatea Ethernet/Web – implică existen ța unor resurse care să permită
integrarea cu ușurință într -o rețea de tip Ethernet, pentru a face posibilă, în final, implementarea
unui protocol TCP/IP (a unei st ive TCP/IP). Resursele respective pot fi de natură software (stivă
soft) care presupun o viteză de prelucrare (putere de calcul) a CPU suficient de mare pentru a nu
afecta vizibil operarea propriu -zisă a controlerului, sau hardware (stivă hardware). Pe baz a acestei
stive se poate realiza o conectivitate tip HTTP, FTP, STMP, POP3, etc.
Conectivitate USB – magistrala serială USB (Universal Serial Bus) a fost creată
pentru conectarea cu u șurință a diverselor periferice la un calculator PC (cu rolul de gazdă – host).
Conexiunea permite si furnizarea tensiunii de alimentare. Varianta USB 1.1 permite atingerea unei
rate de transfer maxime a datelor de 12Mbytes/sec, iar varianta USB 2.0 a unei rate maxime de
cca. 480MBytes/sec. La ora actuală există pe pia ță mult e firme care oferă o gamă largă de
microcontrolere cu conectivitate USB (majoritatea compatibile USB 1.1), cu un pre ț de cost minim
pentru componentele hardware și software. Exemple în acest sens ar fi firmele: Atmel, Microchip,
Intel, Cypress, ST, Infineo n, s.a. Majoritatea sunt destinate realizării unor periferice USB si mai
puține realizării unui USB host.
Conectivitate Wireless – se referă la existen ța unor resurse hardware si/sau
software care să permită integrarea cu u șurință și la un pre ț de cost av antajos într -o rețea de tip
wireless, pentru a face posibilă, în final, implementarea unui protocol (a stivei aferente
Mod
Coala
Nr. document
Semnăt .
Data
Coala
46
UTM 526.1 451 ME protocolului). Exemplele cele mai cunoscute de astfel de re țele, protocoale și stive sunt Bluetooth
(IEEE 802.15.1) și Zigbee (IEEE 802.1 5.4).
Convertoarele Analog Numerice (CAN, ADC)
Convertoarele utilizate fac parte de regulă dintr – un sistem de achizi ție de date, existând și
un multiplexor analogic cu mai multe canale de intrare. Rezolu ția disponibilă este tipic de 8, 10
sau 12 bi ți, uneori cu precizia (rezolu ția adevărată) corespunzătoare unui număr mai mic de bi ți.
In marea majoritate a cazurilor ele sunt realizate pentru mărime de intrare unipolară . Sursa de
referin ță utilizată este internă sau externă. Timpul minim de conversie est e în plaja x µsec la x10
µsec. Există microcontrolere care utilizează tehnici de recalibrare (auto -zero, corec ție câștig, etc.)
pentru mărirea și/sau men ținerea preciziei.
Tehnicile de conversie cele mai utilizate sunt: aproxima ții succesive (majoritatea) cu
eșantionare implicită (circuit Track -Hold inclus), rampă digitală (mai rar). Există și subsisteme
locale care, în cazul în când sunt prezente, pot fi folosite pentru implementarea unor alte tehnici
de conversie bazate pe integrare (cu utilizarea unui nu măr minim de componente exterioare):
numărătoare de impulsuri, circuite comparatoare (analogice, standard), intr ări de captare (for țează
memorarea – "captarea" valorii unui numă rător care numără liber, în momentul activării,
permi țând astfel măsurarea in tervalelor de timp sau frecven țelor), etc.
Convertoarele Numeric Analogice (CNA, DAC). Cea mai răspândită tehnică de
conversie numeric analogică folosită este bazată pe modula ția în factor de umplere (PWM – Pulse
Width Modulation).
AVR. Un concurent puterni c al seriei PIC este familia numită AVR, a firmei ATMEL,
familie apărută în ultimii ani, care oferă variante de microcontrolere oarecum asemănătoare ca
resurse cu familia PIC, la performan țe similare sau mai bune. Sunt bazate pe o arhitectură diferită,
dar unitatea centrală este tot de tip RISC, cu cuvântul de date de 8 bi ți. La fel ca la PIC dimensiunea
cuvântului de program este mai mare, fiind de 16 bi ți. Există cel pu țin 3 sub familii mari, în ordinea
complexită ții resurselor, acestea fiind: AT Tiny, AT 90 și ATMega.
Pentru implementarea sistemului este selectat dispozitivul MCU ATMega 256 care este
utilizat în placa de dezvoltare a aplica țiilor Arduino Mega2560. Vederea externă a placii de
dezvoltare Arduino Mega 2560 este prezentară în Figura 2.14.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
47
UTM 526.1 451 ME
Figura 2.14. Vederea externă a placii de dezvoltare Arduino Mega 2560.
Placa Arduino Mega 2560 se conectează la portul USB al c alculatorului folosind un cablu
de tip USB A -B, disponibil în varianta de 1.5 metri sau de 3 metri. Poate fi alimentata extern (din
priza) folosind un alimentator extern.
Specificatii:
Microcontroler: ATmega2560
Tensiune de lucru: 5V
Tensiune de intrare (recomandat) 7 -12V
Tensiune de intrare (limite) 6 -20V
Pini digitali 54 (14 PWM output)
Pini analogici 16
Curent de iesire 40 mA
Curent de iesire 3.3V Pin 50 mA
Flash Memory 256 KB , 8 KB pentru bootloader
SRAM 8 KB
EEPROM 4 KB
Clock 16 MHz
Destina ția și amplasarea pinilor pe placa Arduino Mega 2560
Mod
Coala
Nr. document
Semnăt .
Data
Coala
48
UTM 526.1 451 ME Pin Number Pin Name Mapped Pin Name
1 PG5 ( OC0B ) Digital pin 4 (PWM)
2 PE0 ( RXD0/PCINT8 ) Digital pin 0 (RX0)
3 PE1 ( TXD0 ) Digital pin 1 (TX0)
4 PE2 ( XCK0/AIN0 )
5 PE3 ( OC3A/AIN1 ) Digital pin 5 (PWM)
6 PE4 ( OC3B/INT4 ) Digital pin 2 (PWM)
7 PE5 ( OC3C/INT5 ) Digital pin 3 (PWM)
8 PE6 ( T3/INT6 )
9 PE7 ( CLKO/ICP3/INT7 )
10 VCC VCC
11 GND GND
12 PH0 ( RXD2 ) Digital pin 17 (RX2)
13 PH1 ( TXD2 ) Digital pin 16 (TX2)
14 PH2 ( XCK2 )
15 PH3 ( OC4A ) Digital pin 6 (PWM)
16 PH4 ( OC4B ) Digital pin 7 (PWM)
17 PH5 ( OC4C ) Digital pin 8 (PWM)
18 PH6 ( OC2B ) Digital pin 9 (PWM)
19 PB0 ( SS/PCINT0 ) Digital pin 53 (SS)
20 PB1 ( SCK/PCINT1 ) Digital pin 52 (SCK)
21 PB2 ( MOSI/PCINT2 ) Digital pin 51 (MOSI)
22 PB3 ( MISO/PCINT3 ) Digital pin 50 (MISO)
23 PB4 ( OC2A/PCINT4 ) Digital pin 10 (PWM)
24 PB5 ( OC1A/PCINT5 ) Digital pin 11 (PWM)
25 PB6 ( OC1B/PCINT6 ) Digital pin 12 (PWM)
26 PB7 ( OC0A/OC1C/PCINT7 ) Digital pin 13 (PWM)
Mod
Coala
Nr. document
Semnăt .
Data
Coala
49
UTM 526.1 451 ME Pin Number Pin Name Mapped Pin Name
27 PH7 ( T4 )
28 PG3 ( TOSC2 )
29 PG4 ( TOSC1 )
30 RESET RESET
31 VCC VCC
32 GND GND
33 XTAL2 XTAL2
34 XTAL1 XTAL1
35 PL0 ( ICP4 ) Digital pin 49
36 PL1 ( ICP5 ) Digital pin 48
37 PL2 ( T5 ) Digital pin 47
38 PL3 ( OC5A ) Digital pin 46 (PWM)
39 PL4 ( OC5B ) Digital pin 45 (PWM)
40 PL5 ( OC5C ) Digital pin 44 (PWM)
41 PL6 Digital pin 43
42 PL7 Digital pin 42
43 PD0 ( SCL/INT0 ) Digital pin 21 (SCL)
44 PD1 ( SDA/INT1 ) Digital pin 20 (SDA)
45 PD2 ( RXDI/INT2 ) Digital pin 19 (RX1)
46 PD3 ( TXD1/INT3 ) Digital pin 18 (TX1)
47 PD4 ( ICP1 )
48 PD5 ( XCK1 )
49 PD6 ( T1 )
50 PD7 ( T0 ) Digital pin 38
51 PG0 ( WR ) Digital pin 41
52 PG1 ( RD ) Digital pin 40
Mod
Coala
Nr. document
Semnăt .
Data
Coala
50
UTM 526.1 451 ME Pin Number Pin Name Mapped Pin Name
53 PC0 ( A8 ) Digital pin 37
54 PC1 ( A9 ) Digital pin 36
55 PC2 ( A10 ) Digital pin 35
56 PC3 ( A11 ) Digital pin 34
57 PC4 ( A12 ) Digital pin 33
58 PC5 ( A13 ) Digital pin 32
59 PC6 ( A14 ) Digital pin 31
60 PC7 ( A15 ) Digital pin 30
61 VCC VCC
62 GND GND
63 PJ0 ( RXD3/PCINT9 ) Digital pin 15 (RX3)
64 PJ1 ( TXD3/PCINT10 ) Digital pin 14 (TX3)
65 PJ2 ( XCK3/PCINT11 )
66 PJ3 ( PCINT12 )
67 PJ4 ( PCINT13 )
68 PJ5 ( PCINT14 )
69 PJ6 ( PCINT 15 )
70 PG2 ( ALE ) Digital pin 39
71 PA7 ( AD7 ) Digital pin 29
72 PA6 ( AD6 ) Digital pin 28
73 PA5 ( AD5 ) Digital pin 27
74 PA4 ( AD4 ) Digital pin 26
75 PA3 ( AD3 ) Digital pin 25
76 PA2 ( AD2 ) Digital pin 24
77 PA1 ( AD1 ) Digital pin 23
78 PA0 ( AD0 ) Digital pin 22
Mod
Coala
Nr. document
Semnăt .
Data
Coala
51
UTM 526.1 451 ME Pin Number Pin Name Mapped Pin Name
79 PJ7
80 VCC VCC
81 GND GND
82 PK7 ( ADC15/PCINT23 ) Analog pin 15
83 PK6 ( ADC14/PCINT22 ) Analog pin 14
84 PK5 ( ADC13/PCINT21 ) Analog pin 13
85 PK4 ( ADC12/PCINT20 ) Analog pin 12
86 PK3 ( ADC11/PCINT19 ) Analog pin 11
87 PK2 ( ADC10/PCINT18 ) Analog pin 10
88 PK1 ( ADC9/PCINT17 ) Analog pin 9
89 PK0 ( ADC8/PCINT16 ) Analog pin 8
90 PF7 ( ADC7 ) Analog pin 7
91 PF6 ( ADC6 ) Analog pin 6
92 PF5 ( ADC5/TMS ) Analog pin 5
93 PF4 ( ADC4/TMK ) Analog pin 4
94 PF3 ( ADC3 ) Analog pin 3
95 PF2 ( ADC2 ) Analog pin 2
96 PF1 ( ADC1 ) Analog pin 1
97 PF0 ( ADC0 ) Analog pin 0
98 AREF Analog Reference
99 GND GND
100 AVCC VCC
2.3. Argumentarea dispozitivelor senzoriale pentru implementarea proiectului
Senzorii reprezintă o prelungire a organelor noastre de sim ț și principala sursă de
informa ție pentru creierul uman, dar și pentru “creierele electronice”. Scopul lor este să determine
Mod
Coala
Nr. document
Semnăt .
Data
Coala
52
UTM 526.1 451 ME interconectări în cadrul proceselor tehnice și să convertească mărimile de măsurat neelectrice în
semnale electrice.
Traductorul este un dispozitiv care pe baza un ei legi fizice realizează transformarea unei
mărimi într -o altă mărime de care diferă calitativ sau cantitativ. Prin urmare, rolul traductorului
este acela de a transforma o mărime într -o altă mărime de aceeasi nătură sau de natură diferită,
prin care să f ie facilitat procesul de măsurare.
La alegerea unui senzor sau traductor, un rol important îl au:
– precizia care trebuie atinsă;
– efectele mărimilor de influen ță;
– caracteristicile dinamice;
– forma semnalului ce trebuie transmis la distan ță;
– fiabilitatea;
– costurile.
Func ționalitatea unui traductor impune o structură generală ce este prezentata în Figura 2.15.
Figura 2.15. Structura generală a unui traductor.
Elemente componente ale traductorului:
– ES element sensibil (senzor);
– A adaptor;
– CP circuit de prelucrare care în func ție de anumite condi ții poate fi reprezentat de exemplu de un
element de liniarizare a caracterisiticii;
– SA sursa de alimentare.
Senzorii generatori (activi) au la baza principiului de func ționare un efect fizic ce asigură
conversia direct în energie electrică.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
53
UTM 526.1 451 ME Cele mai semnificative efecte de acest tip sunt:
Termoelectric,
Piroelectric,
Piezoelectric,
Fotoelectric.
Principalele ca tegorii de traductoare sunt:
Cu reac ție,
Numerice,
Integrate,
Inteligente.
Senzori de detec ție optoelectronici.
Una din posibilitatile cele mai performante de detec ție utilizată la ora actuală în
procesarea imaginilor 3D este cea oferită de domeniul optoelectronic.
Energia luminoasă este o formă radian ță de energie electromagnetică. Radia ția optică
(semnal de intrare) este convertită într -un semnal electronic de ie șire care poate fi utilizat
(dupa prelucrări) în domeniul respectiv.
Radia ția luminoasă este emisă sau absorbită prin cuante corespunzătoare unor particule
numite fotoni. Acest principiu oferă o detec ție în timp real, o rezolu ție inaltă, o imagine
multispectrală.
Poziția zonei vizibile al spectrului optic în cadrul spectrului electromagnetic se în
gama 0.4 µm – 0.76 µm. Radia ția infraro șie este cea cuprinsă în gama 0.76 µm – 100 µm iar radia ția
ultravioletă cea cuprinsă în gama 0.01 µm – 0.4 µm.
Posibilită țile fizice de detectare a radia ției optice sunt diverse. Putem aminti cateva
exemple:
Senzori cuantici: fotoemisivi, fotoconductivi, fotovoltaici.
Senzori termici: termistor, bolometru, termocuplu, piroelectrici.
Alți senzori: fotochimici, fotoplastici, fotoceram ici.
Primele două categorii sunt cele mai utilizate, iar, în GIS, cea mai utilizată este prima
categorie.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
54
UTM 526.1 451 ME Detectoarele cuantice functioneaza pe baza efectului fotoelectric extern: emiterea
electronilor de către solide când acestea sunt supu se ac țiunii unui flux luminos. Acest tip
de emisie este guvernat de două legi principale:
densitatea curentului fotoelectronic este propor țională cu intensitatea fluxului
luminos absorbit pe unitatea de suprafa ță emisivă.
energia maxim ă a electronilor emi și este direct proportională cu frecven ța radia ției
și nu depinde de intensitatea ei.
Conversia fluxului radiant în semnal electric prezintă constrângeri în timp din cauza
factorilor ce limitează procesul de detec ție: timpul de via ță a purtătorilor de sarcină, timpul de
transport a sarcinii, capacitatea termică, electronică aferentă procesului, modularea fluxului
radiant.
Performantele acestor elemente, combinate cu parametrii ce descriu drumul optic, definesc
în final performan țele senz orului optic. Cerin țele unui sistem optic de detec ție pot fi grupate in
două categorii.
Fotodioda reprezintă o jonc țiune p -n de o construc ție specială astfel încât să facă posibilă
inciden ța razelor de lumină în domeniul zonei de difuzie a acesteia.
Caract eristicile statice ale fotodiodei eviden țiază două regimuri posibile de func ționare:
regimul propriu -zis de fotodiodă și regimul de foto -generator (transformator al energiei luminoase
în energie electrică).
În regim de fotodiodă, jonc țiunea p -n este polar izată invers de sursa de alimentare.
Inciden ța razelor de lumină în zona de difuzie determină o cre ștere a curentului invers.
Diodele electro =luminiscente (LED)(Light Emitting Diode) și IRED (Infrared Emitting
Diode) sunt fotodiode emisive. Polarizând jonc țiunea în sens direct, în zona de trecere a acesteia
vor avea loc procese de recombinare electron – gol inso țite de emisie de energie în exterior. In
general suprafa ța activă a unei astfel de diode este de 0.1 -10 mm2 și intensitatea radia țiilor emise
este propor țională cu curen ții direc ți prin jonctiune (1 – 100 mA).
Senzori de proximitate optici.
Senzorii de proximitate optici în construc ția GIS pot fi utiliza ți ca senzori sesizarea unor
obiecte (sau a apropierii acestora), distan ța pînă la obiect.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
55
UTM 526.1 451 ME Func ționarea acestor senzori se bazează pe modificarea fluxului luminos, dintre un
generator și un receptor, în prezen ța obiectului controlat.
În execu ția cea mai simplă, acest senzor constă dintr -un generator și receptor a șezate pe o
axa comună, obiectul de cont rolat întretăind fluxul luminos dintre cele două elemente. Sistemul
are totu și o distanta mică de ac ționare și, în general, se folo sește pentru distan țe de până la 0.1 m.
Pentru mărirea distan ței, generatorul de lumină și receptorul se prevăd cu lentil
colimatoare.
Pentru mărirea sensibilită ții spa țiale de detectare, generatorul și receptorul, se prevăd cu
sisteme optice de focalizare pentru distan ța prescrisă.
Generatorul de lumină (1) și receptorul (2) se pot aș eza sub un unghi (de obicei mic) unul
față de celălalt (ambele de aceeaș i parte a obiectului) putându -se detecta obiecte (3) prin lumina
care se reflectă pe acestea, sau prin modificarea fluxului luminos reflectat pe un ecran (4) la
pătrunderea obiectului de detectat între aceste elemente (Figura 2.16.).
Figura 2.16. Schema principială a senzorului de proximitate optic pe principiul reflexiei.
Din punct de vedere constructiv traductoarele de proximitate optice se realizează într -o
gamă extrem de variată.
Una dintre cele mai importante sarcini în sistemele GIS o repre zintă măsurarea distan țelor.
Totu și, aplica țiile sunt de o foarte mare diversitate, astfel încât este imposibilă dezvoltarea unui
senzor unic capabil să îndeplinească cerin țele fiecărei aplica ții.
SICK oferă o gamă largă de senzori pentru măsurarea distan țelor pentru a putea fi folosite
într-o multitudine de aplica ții. Principiile de func ționare ce stau la baza măsurării distan țelor sunt
tehnologiile senzoriale optoelectronice și ultrasonice. Senzorii optoelectronici de la SICK
convertesc informa ția optică în semnale electrice ce pot fi evaluate. Ca surse de lumină se folosesc
raze laser, infraro șii sau ultraviolete. Semnalele electrice gene rate de către senzori pot fi utilizate
pentru măsurare sau comutare a unei stări. Senzorii optici sunt în principal fo losiți pentru
Mod
Coala
Nr. document
Semnăt .
Data
Coala
56
UTM 526.1 451 ME asigurarea calită ții proceselor de produc ție, pentru verificările prezen ței obiectelor depozitate în
diverse facilită ți, precum și pentru pozi ționarea anumitor utilaje.
Senzori cu fascicul.
În principiu, măsurarea cu fascicul se poate face c u seria A -LAS și seria L -LAS -TB.
Ambele serii sunt disponibile cu transmi țător și receptor separate. La versiunea de tip furcă,
transmi țătorul și receptorul sunt incluse în aceea și carcasă. Datorită căii fasciculului electric din
unitatea transmi țătorului, măsurarea se poate face între transmi țător și receptor aproape
independent de pozi ția de măsurare. Sistemele cu fascicul de acest tip au o profunzime mult mai
mare de focalizare decât sistemele cu lumină reflectată.
Avantajele seriei A -LAS și avantajele seriei L -LAS -TB.
Seria A -LAS:
• Perdeaua de lumină laser este cuprinsă între 0,5 mm x 0,07 mm și 100 mm x 5 mm;
• Model foarte compact;
• Lățime de bandă analogă de până la 300 kHz specific;
• Frecven ță de scanare de până la 50 kHz specific;
• Sunt disponibile diferite unită ți de control;
• Eficien ță economică;
• Este disponibilă p versiune cu fibră optică, cu structură compactă;
• Selec ție foarte variată de păr ți frontale (model de tip furcă sau divizat);
• Precizie de măsurare: specific 0,2 din dim ensiunea aperturii;
• Linearitate: în func ție de dimensiunea aperturii;
• Distan ță de operare: maxim: 1000 x dimensiunea aperturii (cu apertură corectă: axă
longitudinală scurtă).
Seria L -LAS -TB:
• Perdeaua de lumină laser este cuprinsă între 8 mm x 2 m m și 100 mm x 5 mm;
• Frecven ță de scanare de până la 1kHz specific;
• Operare Principal / Secundar;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
57
UTM 526.1 451 ME • Pot fi detectate mai multe obiecte simultan;
• Precizie de măsurare: specific 0,02 din dimensiunea aperturii;
• Linearitate: specific precizie de măsurar e x 2;
• Distan ță de operare: maxim: 1000 x perdeaua de lumină laser la ie șirea transmi țătorului
Senzori cu lumină reflectată
Senzorii sunt diferen țiați în senzori cu lumină reflectată care, de la distan ța unui anumit
obiect proiectează o sec țiune liniar ă pe linia unui detector prin intermediul unei lentile de
proiectare (semnalul liniar, de exemplu, oferă informa ții privind pozi ția marginii sau pozi ția unui
fir, iar acest tip de senzor este, de asemenea, utilizat, pentru controlul dublării foilor) și senzori de
triangula ție (transmi țător, obiect și receptor dispuse în triunghi). La senzorii de triangula ție,
punctul laser este proiectat pe suprafa ță de dispozitivul optic al transmi țătorului și trasat pe
detectorul liniar de dispozitivul optic al receptorului. Pozi ția în care punctul laser influen țează linia
oferă informa ții privind distan ța dintre suprafa ța obiectului și senzor.
Seria L -LAS -LT:
• Disponibilă cu diferite intervale de măsurare (25 mm ± 1 mm, 37 mm ± 2 mm, 55 mm ± 5
mm, … 150 mm ± 1000 mm);
• Senzorul laser se adaptează la suprafa ța respectivă prin intermediul func ției de corec ție
automată a puteri laser;
• Frecven ță de scanare de până la maxim 1 kHz.
Seria L -LAS -TB:
• Disponibilă cu diferite intervale de măsurare de 10 mm, 12 mm, 20 mm 30 mm și 40 mm;
• Distan țe de operare de of 35 mm, 50 mm, 75 mm și 125 mm.
Seria L -LAS -LT.
Seria L -LAS -LT este împăr țită în sisteme a șa numite SIMPLE și PRINCIPAL /
SECUNDAR. Tipurile SIMPLE pot fi utilizate pentru a măsura distan ța unui obiect fa ță de senzor,
în timp ce sistemele PRINCIPAL / SECUNDAR pot fi utilizate și pentru a determina grosimea și
înclinarea obiectelor. Senzorul SECUNDAR în acest caz transmite valoarea măsurată a distan ței
la senzorul PRINCIPAL. Din cele două valori de distan ță, senzorul PRINCIPAL calculează
grosimea sau înclinarea obiectului.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
58
UTM 526.1 451 ME Seria A -LAS.
Pentru barierele de lumină cu fascicul laser analog, sunt disponibile trei unită ți de control
standard Aceste unită ți de control pot fi utilizate pentru to ți senzorii din seria A -LAS. Senzorii din
seria ALAS sunt disponibili și ca versiune de tip divizat, și ca versiune de tip furcă. Sec țiunea
transversală a perdelei de lumină laser (apertură) începe de la 0,1 mm x 0,5 mm sau un diametru
de 0,2 mm și variază până la o dimensiune de 100 mm x 5 mm (pe partea transmi țătorului). Toate
transmi țătoarele laser din seria A -LAS func ționează cu lumină paralelă, în versiunile standard
lungimea de undă a luminii laser î ncadrându -se în gama de ro șu. Distan ța maximă recomandată
transmi țător / receptor depinde de dimensiunea aperturii transmi țătorului. Distan ța maximă
recomandată transmi țător / receptor = 1000 x dimensiunea aperturii transmi țătorului (cu aperturi
dreptung hiulare la transmi țător, axa scurtă este utilizată ca măsură) Cele mai importante unită ți de
control din seria A -LAS:
Unitate de control SI -CON11.
Unitatea de control este conectată, de exemplu, la un PLC prin intermediul unui cablu cu
8 poli. Ie șirea a sigură semnalul de tensiune (0V…+10V) și semnalul de curent. Pot fi selectate trei
versiuni de curent: 0 mA…20 mA, 4 mA…20 mA și 5mA…25mA
Mod
Coala
Nr. document
Semnăt .
Data
Coala
59
UTM 526.1 451 ME 3. Proiectarea sistemului pentru reconstituirea obiectelor 3D în baza senzorilor
optici
3.1. Structura sis temului
Structura sistemului pentru reconstruirea obiectelor 3D în baza senzorilor optici este
prezentată în Figura 3.1.
Figura 3.1. Structura sistemului pentru reconstruirea obiectelor 3D în baza senzorilor optici.
Specificarea componentelor:
PC – calculatorul cu aplicația pentru reconstruirea obiectelor 3D;
MCU – dispozitivul microcontroler ATMega;
SM – servo -motor pentru orientarea senzorului optic spre suprafața ogiectului pentru a
scana suprafața acestuia;
SD – senzor optic pentru măsurarea d istanței până la obiectl scanat.
3.2. Schema funcțională a sistemului
Schema funcțională a sistemului pentru reconstituirea obiectelor 3D în baza senzorilor
optici este prezentată în Figura 3.2.
PC
MCU
SM
SD
Mod
Coala
Nr. document
Semnăt .
Data
Coala
60
UTM 526.1 451 ME
Figura 3.2. Schema funcțională a sistemului pentru reconst ituirea obiectelor 3D în baza
senzorilor optici.
Specificarea componentelor:
Utilizator – personal cu drept de utilizare a sistemului pentru reconstruirea obiectelor 3D
în baza senzorilor optici;
Control aplicație – dispozitive pentru introducerea datel or și a comenzilor;
Vizualizare – videomonitor pentru vizualizarea rezultatelor interpolării suprafeței
obiectului reconstruit;
Drivere SO – driverele sistemului de operare pentru comunicarea cu perifericile implicate
în procesul de introducere și afișar e a informației;
SO Windows – sistemul de operare cu toate resursele de gestiune a dispozitivelor PC;
Aplicația SMCU – aplicația utilizatorului Sistem MCU pentru reconstruirea obiectelor 3D
în baza senzorilor optici;
Interfața USB – magistrala serială u niversală destinată pentru programarea și organizarea
schimbului de date dintre PC și MCU;
MCU ATMega – dispozitivul microcontroler ATMega256;
Driver DC – driver pentru motorul de curent continuu cu două polarizări;
SM – servo -motor pentru orientarea SSO în procesul de scanare a suprafeței obiectului 3D;
Utilizator
Control
Aplicatie
Vizualiza
re
Drivere
SO
SO Windows
Aplicatia
SMCU
3D
SO
Interfata
USB
MCU
ATMega
Driver
DC
SM
SSO
Supr
F
R
Salvarea
datelor
Mod
Coala
Nr. document
Semnăt .
Data
Coala
61
UTM 526.1 451 ME SSO – sistem senzorial optic;
F – fluxul direct de radiații optice;
R – returnarea fluxului de radiații optice reflectat de pe suprafața obiectului scanat;
Supr. – suprafața scanata.
3.3. Modelarea sistemului
Pașii algoritmici de construire a suprafeței 3D
Profilul topografic este un element de bază al analizei reliefului, deoarece dă posibilitatea
unei mai bune înțelegeri a particularităților morfologice și morfome trice ale acestuia. El rezultă
din intersecția unui plan vertical cu suprafața terestră și poate fi întocmit doar în cazul în care
relieful este reprezentat prin metoda curbelor de nivel.
Pentru a construi un profil suprafeței se procedează în modul următo r (Figura 3.3):
– se aleg punctele între care dorim să construim profilul și se determină altitudinile
acestora (în cazul în care nu sunt puncte de cotă cunoscută);
– se unesc punctele cu o linie subțire și de -a lungul acesteia se așează o bandă de
hârtie pe care se vor marca toate punctele de intersecție ale liniei de profil cu curbele de
nivel și cu talvegurile văilor pe care acesta le traversează, înscriindu -se și altitudine
punctelor respective;
– pe suportul electronic se trasează un sistem de axe YOX, unde pe abscisă vom
avea scara orizontală (sau scara distanțelor), iar pe ordonată scara verticală (sau scara
înălțimilor);
– se alege o scară verticală adecvată, de exemplu 1 cm = 100 m, și se vor înscrie
apoi pe ordonată valorile de altitudine pornindu -se din origine nu cu valoarea 0 (cu excepția
situațiilor când se execută profile în zone de câmpie), ci cu o valoare mai mică decât
altitudinea minimă întâlnită de -a lungul liniei de profil;
– se combină planul YOX și din dreptul punctelor înscrise pe ea s e ridică
perpendiculare până la altitudinea corespunzătoare fiecăruia dintre acestea;
punctele rezultate pe suportul electronic se vor uni în ordinea raportării lor,
obținându -se astfel linia profilului topografic [2].
Mod
Coala
Nr. document
Semnăt .
Data
Coala
62
UTM 526.1 451 ME Scara este un element esențial al ori cărei reprezentări grafice sau cartografice. În cazul
profilului topografic apar două scări: scara orizontală și scara verticală. Scara orizontală este dată
de scara hărții pe care s -a executat profilul, iar scara verticală este cea pe care o stabilim în funcție
de caracteristicile reliefului.
Figura 3.3. Formarea unui profil de suprafață.
Modelarea sistemului pentru reconstruirea obiectelor 3D în baza senzorilor optici.
Tendința actuală din industria de proiectare și implementare software impune dezvol tarea
de sisteme extrem de complexe și în cel mai scurt timp posibil. În plus, odată cu apariția pe piață
a limbajelor orientate obiect și a mediilor vizuale de programare, au aparut în ultimii ani mai multe
propuneri de procese de dezvoltare orientată obi ect a sistemelor informaționale și de monitorizare
în timp real.
Apariția standardului UML [19,24,26] – reprezintă un mare avantaj dacă ne gândim la
multitudinea de notații și metode utilizate până nu de mult șn proiectarea orientată obiect și pe care
UML le substituie cu succes. În prezent este suficient ca proiectanții să cunoască acest unic sistem
de notații.
UML -ul reprezintă o sinteză a celor mai multe notații și concepte utilizate în proiectarea
orientată obiect. UML propune notații standard și seman tică corespunzătoare pentru modelarea
sistemelor orientate obiect. Înainte de aceasta un proiect orientat obiect putea fi descris utilizând
una dintre zecile de metodologii disponibile, ceea ce făcea ca în cazul unei revizuiri cei
responsabili de aceasta s ă piardă mult timp cu analiza notatiilor și semanticii metodologiei inainte
de a pătrunde logica proiectării.
Actualmente, diferiți proiectanți, ce lucrează la diverse sisteme pot intelege cu ușurință
munca celuilalt prin citirea corectă a diagramelor UML . UML prescrie un set standard de diagrame
și notații pentru analiza și proiectarea orientată obiect a diverselor tipuri de sisteme (sisteme
Mod
Coala
Nr. document
Semnăt .
Data
Coala
63
UTM 526.1 451 ME software, sisteme hardware sau planificare și organizare de intreprinderi și organizații), descriind
totodată și se mantica acestor diagrame și simboluri.
Limbajul unificat de modelare oferă pentru aceasta zece tipuri de diagrame ce pot fi grupate
astfel [26]:
– diagrama pentru modelarea proceselor;
– diagrame pentru modelarea structurii statice;
– diagrame pentru model area dinamicii;
– diagrame de interacțiune;
– diagrame de comportament;
– diagrame de implementare.
În procesul de proiectare și modelare a sistemului pentru reconstruirea obiectelor 3D în
baza senzorilor optici au fost elaborate următoarele diagrame UML: diagrama cazurilor de
utilizare, diagrama de secvențe și diagrama de activitate.
Diagrama cazurilor de utilizare.
Diagrama cazurilor de utilizare furnizează un mecanism de colectare a cerințelor de
exploatare a sistemului. Ea identifică utilizările solicit ate și comportamentul necesar pentru a
susține aceste utilizări și ajută la identificarea cerințelor sistemului. Atunci când este utilizată în
legatură cu diagrama claselor determină limita antrenării unui proiect în soluții dezvoltate
concurențial, de la sumar la descrieri detaliate, care sunt apoi transformate în scenarii de cazuri de
utilizare multiple.
Fiecare diagramă a cazurilor de utilizare are cel putin un caz și un actor.
Un caz de utilizare reprezintă secvența acțiunilor pe care sistemul le realiz eaza pentru a
produce ceva de valoare pentru actorul care interacționează cu sistemul.
Actorul poate fi o persoana sau un alt sistem extern. Un actor poate participa la mai mult
de un caz și, invers, la acelasi caz de utilizare pot participa mai multi act ori.
Asocierea de extindere arată că un caz de utilizare poate include opțional, în anumite
condiții, un alt caz de utilizare și arată dependența dintre ele.
În Figura 3.4 se prezintă diagrama cazurilor de utilizare pentru sistemul de reconstruire a
obiect elor 3D în baza senzorilor optici.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
64
UTM 526.1 451 ME
Figura 3.4. Diagrama cazuri de utilizare a sistemului microcontroler pentru reconstruirea
obiectelor 3D.
Specificarea componentelor diagramei cazurilor de utilizare:
Utilizatori – persoanele utilizatori ai sistemului pe ntru reconstruirea obiectelor 3D în baza
senzorilor optici;
Recepționează datele de la setul de senzori – operații de achiziție a datelor generate de
dispozitivele MCU dotate cu senzori optici pentru determinarea distanței până la suprafața
obiectului dest inat reconstruirii;
Stichează datele în fișier – datele achiziționate de la setul de senzori sunt stocate în fișierul de
date care ulterior servesc pentru reconstruirea suprafeței oboectului respectiv. Structura fișierului
prezintă un tabel cu 3 coloane fi ecare dintre acestea prezintă sistemul de coordonate XYZ;
uc Figura 3.4. SR3DSO
Sistem microcontroler pentru reconstruirea obiectelor 3D in
baza senzorilor optici
UtilizatoriReceptioneaza date le de la
setul de senzori
Filtreaza datele
Aranjeaza datele in formatul de
reconstruire a obiectului 3D
Interpoleaza suprafata
obiectului 3DStocheaza datele in fisier
Afiseaza date le in format
3D in freastra de dialog a
aplic atieiSetul de senzori optici
Mod
Coala
Nr. document
Semnăt .
Data
Coala
65
UTM 526.1 451 ME Filtrează datele – în scopul exluderii erorilor posibil aparente în procesul de achiziției a datelor
este prevăzută operația de filtrare;
Aranjează datele în formatul de reconstruire a obiectelor 3D – datele în fișier sunt aranjate în
ordinea de achiziție a acestora. Pentru reconstruirea suprafeței obiectului 3D se prevede operația
de aranjare a acestor date în ordinea crescătoare pe coordon atele OX și OY;
Interpolează suprafața obiectului 3D – datele din fișierul cu date achiziționate sunt utilizate
pentru operații de interpolare pe coordonatele OX și OY pentru a obține suprafețe continue ale
obiectului reconstruit;
Afișează datele în format 3D în fereastra de dialog a aplicației – rezultatul interpolării datelor
sunt afișate pe ecran în sistemul de coordonate XYZ;
Figura 3.5. Diagrama de secvențe a sistemului MCU pentru reconstruirea obiectelor 3D în baza
senzorilor optici.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
66
UTM 526.1 451 ME Diagrama de secvențe.
Scenariile cazurilor de utilizare se dezvoltă în mod natural din diagrama de secvență.
Diagramele de secvență transformă evenimentele identificate în scenariile cazurilor de
utilizare intr -o reprezentare grafică a utilizarilor sistemului de către actor.
Fiecare eveniment are ca rezultat un mesaj trimis unui obiect cu perspectiva că acel obiect
va realiza o operație.
Diagrama de secvență descrie cronologic interacțiunea obiectelor, identificând mesajele
schimbate între obiecte ca răspuns la un even iment, împreună cu secvența mesajelor.
Diagrama de secvențe a sistemului MCU pentru recostruirea obiectelor 3D în baza
senzorilor optici este prezentată în Figura 3.5.
Specificarea diagramei de secvențe a sistemului MCU:
Utilizator – persoana utilizator al aplicației pentru reconstruirea obiectelor 3D în baza senzorilor
optici;
Aplicația PC – aplicația principală a sistemuli amplasată pe un calculator PC cu interfață USB
pentru achiziția datelor de la setul de MCU și senzori;
Sistem MCU, Setul de senzori – dispozitivul microcontroler ATMega 256 cu setul de senzori
cinectați la acesta;
Sistemul de vizualizare – sistemul video format din interfața video și videomonitorul pentru
afișarea datelor 3D.
Modalitatea de funcționare și interacțiune a obiectelor din di agrama de secvențe este definită de
structura și contextul acesteia.
Diagrama de activitate.
O diagramă de activitate permite o mai buna ințelegere a operațiilor, în special a celor complexe.
Diagrama de activitate este un tip de grafic de stare care spec ifică activitatea unei anumite clase.
Starea acțiunii reprezintă starea unei activități în cadrul unei operații. Descrie descompunerea stării
de acțiune și tranzițiile în cadrul unei anumite stări a obiectului, mai mult decât de la o stare la alta.
Diagram a de activități a sistemului MCU destinat pentru reconstruirea obiectelor 3D în baza
senzorilor optici se prezintă în Figura 3.6.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
67
UTM 526.1 451 ME Specificarea componentelor diagramei de activități a sistemului:
Start Aplicație PC – începutul activităților ale sistemului de calcul PC;
Start Aplicație MCU – începutul activităților ale dispozitivului MCU;
Inițiere Aplicație PC – lansarea și inițierea resurselor ale aplicației care rulează pe sistemul de
calcul PC;
Initiere Aplicație MCU – lansarea și inițierea resurselor ale aplicației care rulează pe sistemul de
calcul MCU;
Rgim de funcționare Aplicație PC – utilizatorul selectează regimul de funcționare pentru
aplicația care rulează pe PC;
Apel de achiziție a datelor – calculatorul PC generează un apel către dispozitivul MCU pentru a
primi datele de la setul de senzori;
Așteptare apel de la PC – dispozitivul MCU așteaptă apelul generat de PC pentru a transmite
datele achiziționate de la setul de senzori;
Procesarea apelului – sistemul MCU procesează apelul pentru a iniția operația de achiziție a
datelor de la setul de senzori;
Achiziția datelor de la senzori – dispozitivul MCU efectuează achiziția datelor de la setul de
senzori;
Procesarea datelor achiziționate de la senzori ;
Expediarea datelor la PC – dispozitivul MCU expediază datele achiziționate de la senzori la PC
prin intermediul portului USB;
Primirea datelor de la MCU – calculatorul PC recepționează datele de la MCU;
Procesarea datelor – aplicarea algoritmilor de procesare și fil trare a datelor;
Stocarea datelor – înscrierea datelor în fișierul de descriere a suprafeței obiectului 3D;
Afișare pe ecran – interpolarea și afișarea rezultatului în fereastra de dialog în sistemul de
coordonate XYZ;
Stop – sfârșitul activităților.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
68
UTM 526.1 451 ME
Figura 3. 6. Diagrama de activități a sistemului MCU pentru reconstruirea imaginilor 3D în baza
senzorilor optici.
Avantajele aplicării UML în proiectarea sistemului didital.
După cum s -a observat sistemul de monitorizare a intensității câmpului electromagne tic
prezintă un sistem complex care este format din mai multe componente: un PC Server și o mulțime
de dispozitive Samsung Galaxy Tab cu produsul program respectiv pentru achiziția datelor de
intensitate a câmpului electromagnetic și coordonatele amplasări i acestea [19, 25].
Deși nu garantează succesul unui proiect de comandă în timp real, UML poate contribui la
reducerea costurilor de instruire și schimbare a instrumentelor de lucru atunci când se face trecerea
de la un proiect la altul sau de la o organiz ație la alta.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
69
UTM 526.1 451 ME UML oferă o baza pentru integrarea instrumentelor, proceselor și domeniilor. În primul
rând, UML asigură o terminologie unică și permite realizatorilor de sisteme să se concentreze
asupra obiectivelor proiectelor și nu asupra instrumentelor de modelare.
Scopul utilizării limbajului UML în procesul de proiectare a sistemului de monitorizare a
fluxului rutier:
– pune la dispoziția utilizatorilor un limbaj de modelare vizual ușor de folosit, expresiv. Este foarte
important ca standardul pentru a naliza și proiectare să suporte un limbaj de modelare care să fie
folosit pentru realizarea de taskuri generale de modelare.
– asigură extensibilitatea precum și mecanismele de specializare prin care să fie extinse conceptele
de baza;
– permite formulare a de specificații independente de un anumit limbaj de programare și de
procesele de realizare a sistemului;
– oferă o baza formală pentru înțelegerea limbajului de modelare.
În plus, UML extinde posibilitățile oferite de metodele menționate mai sus. De exemplu,
prin utilizarea UML se poate realiza modelarea sistemelor concurente și a celor distribuite. Din
punct de vedere arhitectural sistemul de monitorizare poate fi definit ca un sistem distribuit cu
procesare concurentă a datelor.
Respectiv utilizarea UML reduce considerabil procesul de proiectare și implementare a acestuia.
3.4. Algoritmul de funcționare a dispozitivului MCU
Algoritmul de funcționare a dispozitivului MCU este prezentat în Figura 3.7.
Specificarea algoritmului:
START – începutul algoritmului de funcționare a dispozitivului MCU;
Inițiere Program – inițierea procedirilor și a variabilelor;
Inițiere Porturi – setarea regimului de funcționare pentru porturile de intrare ieșire;
Afișează starea – afișează starea MCU pe sistemul de indicare;
Așteaptă comanda – dispozitivul MCU trece în regim de așteptare a comenzilor de la PC;
Recepționează Comanda – dispozitivul MCU recepționează comanda de la PC prin
intermediul portului USB;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
70
UTM 526.1 451 ME Procesează Comanda – MCU identifică coman da recepționată de la PC și o execută;
Control SM – MCU generează comenzi pentru comanda cu servo -motorul;
Achiziție date SO – achiziția datelor de la sistemul optic;
Procesarea datelor SO – procesarea datelor parvenite de la sistemul optic;
Sfârșit SS – verifică sfârșitul scanării suprafeții 3D;
Sfârșit Algoritm – verifică sfârșitul algoritmului de achiziție a datelor sau reperate operație
de achiziție;
STOP – sfârșitul algoritmului.
Figura 3.7. Algoritmul de funcționare a dispozitivului MCU.
3.5. Algoritmul de funcționare a sistemuli PC
Algoritmul de funcționare a sistemului PC este prezentat în Figura 3.8.
Specificarea algoritmului:
START
Initiere
Program
Initiere
Porturi
Afiseaza
starea
Asteapta comanda
NU
Receptioneaza Comanda
DA
Proceseaza
Comanda
Control SM
Achizitie
date SO
Procesarea
datelor SO
Sfirsit
SS
NU
Sfirsit Algoritm
NU
STOP
DA
Mod
Coala
Nr. document
Semnăt .
Data
Coala
71
UTM 526.1 451 ME START – începutul algoritmului de funcționare al sistemului PC;
Inițiere Program – lansarea programului și identificarea resurselor;
Inițiere Porturi – inițierea porturilor de intrare / ieșire;
Afușează fereastra de dialog – aplicația deschide fereastra de dialog pentru selectarea
regimului și afișarea rezultatului;
Setarea regimul ui de lucru – operatorul selectează regimul de funcționare a aplicației;
Scanate ? – verifică dacă începe o nouă operație de scanare a obiectului 3D;
Apel către MCU – expedierea apelului către MCU pentru scanarea suprafeței și achiziția
datelor de la sen zorul optic;
Așteaptă date de la MCU – aplicația așteaptă datele de la dispozitivul MCU;
Figura 3.8. Algoritmul de funcționare a sistemului PC.
START
Initiere
Program
Initiere
Porturi
Afiseaza
Fereastra
de Dialog
Setarea
Regimului
de lucru
Scanare
?
Apel catre
MCU
DA
Asteapta date de la
MCU
Primirea datelor de
la MCU
DA
Sfirsitul datelor
NU
NU
NU
Procesarea
datelor
DA
Salvarea
datelor
Incarca
Datele
Procesarea
datelor
Afisarea
datelor
Manipularea
datelor
STOP?
NU
STOP
DA
Mod
Coala
Nr. document
Semnăt .
Data
Coala
72
UTM 526.1 451 ME Primește datele de la MCU – aplicația primeste datele de la MCU prin intermediul
portului USB;
Sfârșitul datelor – verifică daca este sfârșitul datelor parvenite de la MCU;
Procesarea datelor – aplicarea algoritmilor de filtrare și selectare a datelor;
Salvarea datelor – înscrierea datelor în fișier;
Încarcă datele – încărcarea datelor din fișier în memori e;
Procesarea datelor – aplicarea algoritmului de interpolare a datelor și obținerea curbelor
de suprafață;
Manipularea datelor – modificarea parametrilor pentru afișarea datelor în fereastra de
dialog;
Stop – sfârșitul algoritmului.
Algoritmul de func ționare a sistemului PC este prezentat în Anexă.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
73
UTM 526.1 451 ME 4. Argumentarea economică a proiectului de licență
4.1. Elaborarea bugetului proiectului
Efectuarea activității de proiectare și implementare a unui sistem informațional necesită
existența unor obiective și descrierea activităților pentru atingerea lor. Cele mai principale
obiective și activități sunt prezentate în Tabelul 4.1.
Tabelul 4.2. Etapele de efectuare a lucrărilor de proiectare și personalul implicat.
Obiective Activități Termen Persoane
Implicate
Optimizarea elaborării
sistemului până la
implementare. Reducerea cheltuielilor de activitate.
Crearea condițiilor optime pentru lucru.
Mărirea productivității salariaților 2 luni Managerul
proiectului
Strategia de promovare Îmbunătățirea permanentă a calității
sistemului.
Organizarea prezentărilor potențialilor
clienți. 1 lună Programator
Managerul
proiectului
Mărirea beneficiului Lărgirea gamei de produse. Delimitarea
serviciilor noi.
Atragerea clienților oferind avantaje și
reduceri pe parcursul termenului de
testare. 2 luni Managerul
proiectului
Menținerea produsului
pe piață Îmbunătățirea calității suportului
informațional și tehnic acordat clienților
deja existenți.
Elaborarea versiunilor noi de produs.
Promovarea avantajelor tehnologiilor noi
de elaborare. 6 luni Programator
Tester
Managerul
proiectului
Mod
Coala
Nr. document
Semnăt .
Data
Coala
74
UTM 526.1 451 ME 4.2. Planul calendaristic de executare a lucrărilor de proiectare
Evaluarea volumului de lucru
Tabel 4.2. Timpul planificat și lucrările de realizare a proiectului.
Nr Denumire obiectiv Timp necesar,
zile
1 Efectuarea studiului preliminar 5
2 Identificarea necesităților 3
3 Stabilirea echipamentului necesar 2
4 Elaborarea sistemului propriu -zis 18
5 Testarea sistemului 5
6 Instruirea potențialilor utilizatori 3
7 Trecerea companiei la sistemul nou 1
Total, zile 39
Întocmirea planului calendaristic
La întocmirea planului calendaristic au activat trei specialiști.
Managerul – Coordonatorul proiectului, implicat practic in toate acțiunile asupra elaborării
programului.
Programator, proiectant – Implicat direct la realizarea proiectului.
Testerul – Testarea completa a sistemului si motivarea observațiilor.
Tabelul 4.3. Reparti zarea personalului pe lucrări.
Nr. Personal implicat Abreviat Nr persoane
1 Manager M 1
2 Programator, Proiectant P1, P2 2
3 Tester T 1
Total 4
Mod
Coala
Nr. document
Semnăt .
Data
Coala
75
UTM 526.1 451 ME Tabelul 4.4. Planul calendaristic realizat.
Nr Denumirea acțiunii Perioada, zile Zile implicate Executori de
lucrări
1 2 3 4 5
1 Efectuarea studiului preliminar 5 5 M
2 Identificarea necesităților de
proiectare și implementare 3 3 M,P1, P2
3 Stabilirea echipamentului necesar
pentru elaborarea cu succes a
proiectului 2 2 M,P1, P2
4 Elaborarea sistemului propriu -zis 18 18 M,P1, P2
5 Testarea sistemului 5 5 P1, P2,T
6 Instruirea potențialilor utilizatori 3 3 T
7 Trecerea companiei la sistemul
nou 1 1 M
Perioada totala de zile
Inclusiv pe categorii de personal 39
29 M
28 P1
28 P2
3 T
4.3. Calculele costurilor de proiectare
Cheltuieli directe
Pentru elaborarea proiectului dat avem nevoie de următoarea tehnică de calcul ce vor fi incluse în
active materiale.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
76
UTM 526.1 451 ME Tabelul 4.5. Active materiale și nemateriale pe termen lung.
Nr. Denumire materiale Unitate de
măsură Numărul de
unităși Preț unitate,
lei Suma
activelor,
lei
1 Computer Buc 2 6200 5000
2 Server 7400
3 Printer Buc 1 1900 1900
4 Soft licențiat un 1 1800 1800
Total costul
materialelor 16100
Consumuri materiale directe
Tabelul 4.6. Consumuri materiale directe.
Nr. Denumire materiale Unitate de
măsură Numărul
de unități Preț, lei Suma
materialelor
directe, lei
1 UsbFlash Buc 1 150 150
2 Masa pentru calculator,
server Set 2 850 1700
3 Rechizite de birou Buc 1 320 320
4 CD-RV Buc 10 8 80
Total materiale directe 2250
Mod
Coala
Nr. document
Semnăt .
Data
Coala
77
UTM 526.1 451 ME 4.4. Cheltuieli privind retribuirea muncii
Tabelul 4.7. Fondul de salarizare al personalului implicat în proiect.
Nr. Lucrător(funcția) Volumul de
lucru, zile Salariul/zi, lei Fondul tarifar de
salarizare, lei
1 Manager 29 270 7830
2 Programist1 28 240 6720
2 Proiectant2 28 240 6720
3 Tester 3 250 750
Total 22020
Tabelul 4.8. Cheltuieli privind defalcări în Fondul Social și Prime de Asigurare Medicală.
Nr. Lucrător
(funcția) Fondul tarifar
de salarizare,
lei Fondul Social
(23%), lei Prime de Asigurare
Medicală (4,5%), lei
1 Manager 7830 1800.9 352.35
2 Programist1 6720 1545.6 302.40
3 Programist2 6720 1545.6 302.40
4 Tester 750 172.5 33.75
Total 22020 5064.6 990.90
4.5. Cheltuieli indirecte (alte)
Aici sunt incluse toate cheltuielile, care nu au fost incluse în grupele anterioare, precum uzura, ș.a.
Calculul uzurii este efectuat cu ajutorul formulei:
1TTMFiA
(4.1)
Unde: MFi este valoarea inițială (de procurare) a activelor pe termen lung, lei (T – este durata de
funcționare a activelor pe termen lung, zile, T 1 este durata efectivă a proiectului.
Ac = 6200 * 0,25/265 * 20 = 116,98 lei;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
78
UTM 526.1 451 ME As = 6200 * 0,25/265 * 19 = 88,90 lei;
Ap = 1900 * 0,25 /265 * 39 = 69,91 lei;
Asl = 1800 * 0,25/265 * 39 = 66,23 lei;
Tabelul 4.9. Calcularea FA pe durata proiectului.
Nr. Denumire Valoarea totală
(MFi), lei Durata
utilizării (T),
zile Durata reală a
proiectului
(T1), zile Fondul de
amortizare
(A), lei
1 Computer 6200 1095 20 116.98
2 Server 6200 1095 19 88,90
3 Printer 1900 1095 39 69.91
4 Soft licențiat 1800 910 39 66.23
Total 365.63
Tabelul 4.10. Cheltuieli indirecte.
Nr. Denumire cheltuieli Unitate
de
măsură Consum
necesar Preț (tarif), lei Valoarea
totală, lei
1 Cheltuieli lumina Kw/h 183 1.92 351,36
2 Cheltuieli apa m³ 9 9.15 82.35
3 Chirie M2 36 95 3420,00
4 Internet luna 1.5 175 262,50
5 Telefon min 200 0.11 22,00
Total 4138.21
Mod
Coala
Nr. document
Semnăt .
Data
Coala
79
UTM 526.1 451 ME 4.6. Prețul de cost al proiectului
Tabelul 4.11. Calculele prețului de cost al proiectului.
Nr. Articolele de cheltuieli Suma, lei
1 Fondul tarifar de retribuire a muncii 22020,00
2 Defalcări în Fondul Social 5064.60
3 Prime de Asigurare Medicală 990.90
4 Cheltuieli indirecte 4138.21
5 Consumuri materiale directe 2250,00
6 Fondul de amortizare 342,02
Total prețul de cost al proiectului 34805.73
Mod
Coala
Nr. document
Semnăt .
Data
Coala
80
UTM 526.1 451 ME Concluzii finale
În teza de licență s -a efectuat proiectarea și modelarea unui sistem în bază de
microcontroler destinat pentru reconstituirea obiectelor 3D în baza senzorilor optici. Sistemul
dezvoltat se bazează pe scanarea suprafeței obiectului cu ajutorul unui fascicol de lumină care este
reflectat și recepționat de un foto receptor. Timpul de răspândire a luminii de la sursă p ână la
receptor determină distanța sau relieful obiectului. Informația acumulată prezintă o matrice de
puncte discrete în sistemul de coordonate XYZ. Reconstituirea obiectului 3D este efectuată prin
interpolarea punctelor discrete și obținerea curbelor de aproximare. Rezultatul reconstruirii este
prezentat în formă 3D în sistemul de coordonate XYZ.
În teza de licență s -a efectuat analiza situației în domeniul de proiectare, analiza metodelor,
modelelor și tehnicilor aplicate în generarea și interpolarea su prafețelor 3D, argumentarea
dispozitivului MCU și a setului de senzori. S -a efectuat proiectarea sistemului în rezultatul căreia
au fost obținute: structura sistemului, schema funcțională a sistemului, modelarea sistemului cu
diagrame UML, algoritmul de fu ncționare al dispozitivului MCU și algoritmul de funcționare al
sistemului PC.
Eficiența economică a proiectului de licență este demonstrată prin calculele respective.
Validarea proiectului de licență s -a efectuat prin elaborarea produsului program de
funcționare al sistemului PC si MCU.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
81
UTM 526.1 451 ME Bibliografie
[1]. A. Koschan, M. Abidi, Digital Color Image Processing, Wiley & Sons, 2008.
[2]. A.K. Jain, Fundamentals of Digital Image Processing, Prentice -Hall, London, 1989.
[3]. Barry B. Brey, “The Intel Microprocessors : 8086/8088, 80186,80286, 80386 and 80486.
Architecture, Programming, and Interfacing”, 3 -rd edition, Prentice Hall, 1994
[4]. Bucur,C.M., Metode numerice, Editura Facla, Timișoara, 1973.
[5]. Ciurea,E., Algoritmi Introducere în algoritmica grafurilor, Editura Tehni cǎ, Bucurști,
2001.
[6]. D. Forsyth, J. Ponce, Computer Vision. A Modern Approach, Prentice Hall, 2002.
[7]. E. Trucco, A. Verri, “Introductory Techniques for 3 -D Computer Vision”, Prentice Hall,
1998.
[8]. GIS, Wikipedia, http://en.wikipedia.org/wiki/Geographic_information_system
[9]. http://arduino.cc/en/Tutorial/HomePage
[10]. http://eureka.cs.tuiasi.ro
[11]. http://users.utcluj.ro/~rdanescu/teaching_pmp.html
[12]. http:/ /www.gisdevelopment.net/aars/acrs/1995/ps4/ps4002.asp
[13]. http://www.referat.ru
[14]. http://www.referate.ro
[15]. http://www.regielive.ro
[16]. Ichim,I., Marinescu,G., Metode de aproximare numericǎ, Editura Academiei R. S.
R., București, 1986.
[17]. Ignat,C., Ilioi,C., Jucan,T., Elemente de informaticǎ și calcul numeric,
Universitatea „Al. I. Cuza”, Iași, Facultatea de Matematicǎ, 1989.
[18]. Jain, A.K., Fundamentals o f Digital Image Processing, Prentice -Hall, London,
1989.
[19]. John Wiley & Sons, Inc. G. X.Ritter, J.N. Wilson, Handbook of computer vision
algorithms in image algebra -2nd ed, 2001 CRC Press.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
82
UTM 526.1 451 ME [20]. Kinect for Windows Programming Guide – http://msdn.microsoft.com/en –
us/library/hh855348.aspx
[21]. Kinect for Windows SDK – http://www.microsoft.com/e n-
us/kinectforwindows/develop/overview.aspx
[22]. L. G. Shapiro, G. C. Stockman, Computer Vision, Prentice Hall, 2001
[23]. Lewis F.L. Wireless Sensor Networks , John Wiley & Sons. 2004.
[24]. Lihtețchi I., Ivan M -C., ș.a., „Grafică asistată 3D în AutoCAD”, Editura
Universit ății Transilvania din Brașov, 2003
[25]. Livovschi,L., Georgescu,H., Sinteza și analiza algoritmilor, Editura științificǎ și
enciclopedicǎ, București, 1986.
[26]. M. Margolis, “Arduino cookbook”, 2ndedition, 2011
[27]. Mihu,C., Metode numerice în algebra liniarǎ, Editura Te hnicǎ, București, 1977.
[28]. Mohammad Ilyas, Imad Mahgoub, Sensor Network Protocols , Editor CRC Press,
2006, ISBN 0849370361, 9780849370366, 248 pagini.
[29]. Nedevski S., Prelucrarea imaginilor și recunoașterea formelor, Editura Albastră,
Cluj-Napoca, 1998.
[30]. Pavlidis T., Algorithms for Graphics and Image Processing, Springer -Verlag,
Berlin -Heidelberg, 1982.
[31]. Păunescu Rodica, Grafica tehnică asistată de calculator, Editura Universității
Transilvania din Brașov, 2003
[32]. Prejmerean V., Grafică pe calculator și prelucrări de imagini, Litografia
Universității de Nord, Baia Mare, 2000.
[33]. R.C.Gonzales, R.E.Woods, "Digital Image Processing -Second Edition", Prentice
Hall, 2002.
[34]. S. Barrett, D. Pack, “Atmel AVR Microcontroller Primer: Programming and
interfacing”, Morgan&Claypool, 2008.
[35]. S. Nedevschi, T. Marita, R. Danescu, F. Oniga, R. Brehar, I. Giosan, C. Vicas,
“Procesarea Imaginilor –Indrumator de laborator”, UTPRESS, 2013.
Mod
Coala
Nr. document
Semnăt .
Data
Coala
83
UTM 526.1 451 ME [36]. S.Nedevschi, "Prelucrarea imaginilor si recunoasterea formelor", Ed.
Microinformatica, 1997.
[37]. Scot E.Umbau gh, “Computer Vision and Image Processing”, Prentice Hall, 1998.
[38]. Shawna D. Lockhart, “A Tutorial Guide to AutoCAD Release 14”, Editura
Addison -Wesley, 1998
[39]. Stăncescu, Constantin “Proiectarea 3D, modă sau necesitate” Revista Hello CAD
Fans nr. 52, Editura F AST Impex, București, 1997
[40]. Vasilescu P., Dunca V. – Proiectarea sistemelor informatice, Ed. Tehnică,
București, 1979.
[41]. Vladislav,T., Rașa,I., Analizǎ numericǎ, Editura Tehnicǎ, București, 1997.
[42]. Vlaicu A., Prelucrarea digitală a imaginilor, Editura Albastră, Cluj-Napoca, 1997.
[43]. Vraciu,G., Popa,A., Metode numerice cu aplicații în tehnica de calcul, Scrisul
românesc, Craiova, 1982.
[44]. W.K. Pratt, Digital Image Processing: PIKS Inside, Third Edition. 2001
[45]. Watt A., 3D Computer Graphics, Addison -Wesley, Great Britain, 1993.
[46]. www.regielive.ro accesat 23.05.2017
[47]. Интерполяция сплайнами – http://alglib.sources.ru/interpolation/polynomial.php
Mod
Coala
Nr. document
Semnăt .
Data
Coala
84
UTM 526.1 451 ME Anexe
unit mainfrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, Grids, ComCtrls, Menus,
SDL_sdlbase, SDL_plot3d,
SDL_NumLab, SDL_rchart, SDL_ntabed, SDL_NumIO, SDL_Colsel;
type
TFrmDataVis = class(TForm)
Panel1: TPanel;
BButExit: TBitBtn;
ColorDialog1: TColorDialog;
popMenPlot3D: TPopupMenu;
Rotate1: TMenuItem;
Pan1: TMenuItem;
Zoom1: TMenuItem;
RotateandZoom1: TMenuItem;
RotXOnly1: TMenuItem;
RotZOnly1: TMenuItem;
BButExecute: TBitBtn;
Panel5: TPanel;
Label1: TLabel;
LblSmooth: TLabel;
Label3: TLabel;
GroupBox3: TGroupBox;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SBLoadUsercolor: TSpeedButton;
SBSaveUserColor: TSpeedButton;
SBGrayScale: TSpeedButton;
SBStandardColors: TSpeedButton;
CSHigh: TColSel;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
85
UTM 526.1 451 ME CSMid: TColSel;
CSLow: TColSel;
NIOSmooth: TNumIO;
NIONumNb: TNumIO;
RGWeighting: TRadioGroup;
NIOResol: TNumIO;
RGColorScale: TRadioGroup;
Panel6: TPanel;
PageControl1: TPageControl;
TSData: TTabSheet;
TEData: TNTabEd;
BButLoadData: TBitBtn;
TSColorMap: TTabSheet;
Panel2: TPanel;
NLXCoord: TNumLab;
NLYCoord: TNumLab;
NLZCoord: TNumLab;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
CBoxShowData: TCheckBox;
TS3DPlot: TTabSheet;
Plot3D1: TPlot3D;
Panel4: TPanel;
NLabZ: T NumLab;
NLabX: TNumLab;
Label2: TLabel;
NLabMag: TNumLab;
SBReset: TSpeedButton;
ScrBarAngleZ: TScrollBar;
ScrBarAngleX: TScrollBar;
CSelGrid: TColSel;
ScrBarMagnif: TScrollBar;
CBoxMesh: TCheckBox;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
86
UTM 526.1 451 ME ScrBarSclZ: TScrollBar;
Panel7: TPanel;
RCColCode: TRChart;
RCCPlot: TRChart;
NLabZScale: TNumLab;
Label7: TLabel;
Label8: TLabel;
CBoxAutoCalc: TCheckBox;
ODiag: TOpenDialog;
CBoxEditDataAllowed: TCheckBox;
PopM enEmptyDummy: TPopupMenu;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SBGrayScaleClick(Sender: TObject);
procedure SBStandardColorsC lick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BButExecuteClick(Sender: TObject);
procedure RCCPlotMouseMoveInChart(Sender: TObject; InChart: Boolean;
Shift: TShiftState; rMousePosX, rMousePosY: Double);
procedure RGWeightingClick(Sender: TObject);
procedure CBoxShowDataClick(Sender: TObject);
procedure SBSaveUserColorClick(Sender: TObject);
procedure SBLoadUsercolorClick(Sender: TObject);
procedure BButLoadDataClick(Sender: TObject);
procedure BButExitClick(Sender: TObject);
procedure ScrBarAngleXChange(Sender: TObject);
procedure ScrBarAngleZChange(Sender: TObject);
procedure ScrBarMagnifChange(Sender: TObject);
procedure ScrBarSclZChange(Sender: TObject);
proce dure CSelHighChange(Sender: TObject);
procedure CselMidChange(Sender: TObject);
procedure CSelLowChange(Sender: TObject);
procedure SBResetClick(Sender: TObject);
Mod
Coala
Nr. document
Semnăt .
Data
Coala
87
UTM 526.1 451 ME procedure CSelGridChange(Sender: TObject);
procedure CBoxMeshClick(Sender : TObject);
procedure Rotate1Click(Sender: TObject);
procedure Pan1Click(Sender: TObject);
procedure Zoom1Click(Sender: TObject);
procedure RotateandZoom1Click(Sender: TObject);
procedure RotXOnly1Click(Sender: TObject);
procedure RotZOnly1Click(Sender: TObject);
procedure Plot3D1MouseAction(Sender: TObject; var CenterX,
CenterY: Integer; var RotXAngle, RotZAngle, Magnification: Double;
Shift: TShiftState);
procedure Plot3D1BeforeRenderPolygon(Sende r: TObject;
canvas: Tcanvas; var Handled: Boolean; CellX, CellY: Integer;
quad: TQuad; var color: TColor);
procedure Plot3D1BeforeDrawScaleLabel(Sender: TObject;
canvas: Tcanvas; ScaleType: TP3ScaleKind;
var CurrentTickLabel: String; ChartX, ChartY: Integer);
procedure FormResize(Sender: TObject);
procedure NewCalcNeededAfterClick(Sender: TObject);
procedure TEDataChange(Sender: TObject);
procedure CBoxEditDataAllowedClick(Sender: TOb ject);
procedure Plot3D1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
Varix : array[1..3] of integer; { index of selected variables }
function CalcColorCoding (value: double): TColor;
procedure DisplayColorCoding;
procedure DisplayPlots;
procedure NewCalcNeeded;
public
{ Public declarations }
end;
var
FrmDataVis: TFrmDataVis;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
88
UTM 526.1 451 ME implementation
uses
SDL_math2, SDL_filesys, SDL_vector, SDL_matrix;
{$R *.DFM}
const
Data : array[1..40, 1..3] of double =
(( 5.02, 22.19, 0.36011),
(16.00, 20.00, 0.5523),
(25.43, 12.94, 0.65945),
(32.42, 12.97, 0.95646),
(56.59, 12.91, 1.51694),
(63.58, 13.94, 1.32943),
(72.75, 18.93, 1.20532),
(83.46, 21.18, 1.61397),
( 5.22, 28.61, 0.57115),
(15.89, 30.03, 0.76144),
(25.93, 30.04, 0.1742),
(33.68, 30.08, 0.97782),
(55.43, 28.97, 1.72526),
(63.68, 29.93, 1.01459),
(72.06, 28.94, 1.21338),
(15.99, 40.06, 0.95538),
(25.73, 40.07, 0.26551),
(33.68, 41.02, 0.09775),
(55.53, 39.94, 1.01887),
(63.58, 40.03, 1.61609),
( 7.95, 3 9.91, 1.50952),
(16.00, 51.06, 0.65028),
(25.83, 51.04, 0.77049),
(33.98, 51.07, 1.10382),
(75.43, 88.04, 1.32671),
(63.87, 49.96, 1.90483),
(72.85, 49.90, 1.81108),
(15.69, 62.06, 0.06788),
Mod
Coala
Nr. document
Semnăt .
Data
Coala
89
UTM 526.1 451 ME (25.24, 62.08, 0.38613),
(33.49, 62.07, 1.90664),
(55.03, 61.07, 1.23714),
(63.28, 62.01, 1.6174),
(72.55, 60.08, 1.12031),
(16.30, 65.86, 0.37053),
(19.84, 75.44, 0.29625),
(24.54, 65.82, 0.8998),
(33.39, 65.89, 1.42666),
(35.79, 82.23, 1.30111),
(35.87, 89.86, 1.41355),
(44.38, 96.67, 1.90149));
var
mins, maxs : array[1..3] of double;
(******************************************* *********************************)
function TFrmDataVis.CalcColorCoding (value: double): TColor;
(****************************************************************************)
var
BlueLow : integer;
BlueHigh : integer;
RedLow : integer;
RedHigh : integer;
GreenLow : integer;
GreenHigh: integer;
begin
if value < RCColCode.Scale1X.RangeLow then
value := RCColCode.Scale1X.RangeLow;
if value > RCColCode.Scale1X.RangeHigh then
value := RCColCode.Scale1X.RangeHigh;
value := (value -RCColCode.Scale1X.RangeLow)/(RCColCode.Scale1X.RangeHigh –
RCColCode.Scale1X.RangeLow);
if value < 0.5
then begin
blueLow := (CSLOW.SelCOlor shr 16) and $FF;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
90
UTM 526.1 451 ME blueHigh := (CSMid.SelCOlor shr 16) and $FF;
GreenLow := (CSLOW.SelCOlor shr 8) and $FF;
GreenHigh := (CSMid.SelCOlor shr 8) and $FF;
RedLow := CSLOW.SelColor and $000000FF;
RedHigh := CSMid.SelColor and $000000FF;
end
else begin
value := value -0.5;
blueLow := (CSMid.SelCOlor shr 16) and $FF;
blueHigh := (CSHigh.SelCOlor shr 16) and $FF;
GreenLow := (CSMid.SelCOlor shr 8) and $FF;
GreenHigh := (CSHigh.SelCOlor shr 8) and $FF;
RedLow := CSMid.SelCOlor and $FF;
RedHigh := CSHigh.SelCOlor and $FF;
end;
CalcColorCoding := rgb (round(RedLow+2*value*(RedHigh -RedLow)),
round(GreenLow+2*value*(GreenHigh -GreenLow)),
round(BlueLow+2*value*(BlueHigh -BlueLow)));
end;
(******* *********************************************************************)
procedure TFrmDataVis.DisplayColorCoding;
(****************************************************************************)
const
resolution = 500;
var
step : double;
col : TColor;
BlueLow : integer;
BlueHigh : integer;
RedLow : integer;
RedHigh : integer;
GreenLow : integer;
GreenHigh: integer;
i : integer;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
91
UTM 526.1 451 ME begin
RCColCode.ClearGraf;
RcColCode.Scale1X.LabelType := ftNum;
RcColCode.Capt ion := 'Color Coding';
RcColCode.Scale1X.Caption := TEData.ColName[varix[3]];
RCColCode.LineWidth := 3;
Step := (RCColCode.Scale1X.RangeHigh – RcColCode.Scale1X.RangeLow)/resolution;
blueLow := (CSLOW.SelCOlor shr 16) and $FF;
blueHigh := (CSMid.SelCOlor s hr 16) and $FF;
GreenLow := (CSLOW.SelCOlor shr 8) and $FF;
GreenHigh := (CSMid.SelCOlor shr 8) and $FF;
RedLow := CSLOW.SelColor and $000000FF;
RedHigh := CSMid.SelColor and $000000FF;
for i:=1 to (Resolution div 2) do
begin
col := round(redLow+2.0*(i -1)*(redHigh -redLow)/Resolution) +
256*round(GreenLow+2*(i -1)*(greenHigh -greenLow)/Resolution) +
65536*round(BlueLow+2*(i -1)*(blueHigh -blueLow)/Resolution);
RCColCode.DataColor := col;
RCColCode.Line (RCColCode.Scale1X.RangeLow+(i –
1)*Step,0,RCColCode.Scale1X.RangeLow+(i -1)*Step,1);
end;
blueLow := (CSMid.SelCOlor shr 16) and $FF;
blueHigh := (CSHigh.SelCOlor shr 16) and $FF;
GreenLow := (CSMid.SelCOlor shr 8) and $FF;
GreenHigh := (C SHigh.SelCOlor shr 8) and $FF;
RedLow := CSMid.SelCOlor and $FF;
RedHigh := CSHigh.SelCOlor and $FF;
for i:=1 to Resolution div 2 do
begin
col := round(redLow+2.0*(i -1)*(redHigh -redLow)/Resolution) +
256*round(GreenLow+2*(i -1)*(greenHigh -green Low)/Resolution) +
65536*round(BlueLow+2*(i -1)*(blueHigh -blueLow)/Resolution);
RCColCode.DataColor := col;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
92
UTM 526.1 451 ME RCColCode.Line (RCColCode.Scale1X.RangeLow+(i -1+Resolution div 2)*Step,0,
RCColCode.Scale1X.RangeLow+(i -1+Resolution d iv 2)*Step,1);
end;
RCColCode.ShowGraf;
end;
(****************************************************************************)
procedure TFrmDataVis.DisplayPlots;
(****************************************************************************)
const
RimPer cent = 0.02;
var
dx : double;
i, j : integer;
z : double;
diffx : double;
diffy : double;
success : boolean;
TargetVec : TVector;
InVec : TVector;
AuxMat : TMatrix;
MaxAct : double;
q1, q2, q3 : double;
dbar : double;
Means : TVector;
StdDevs : TVector;
Res : integer;
begin
Res := round(NIOResol.Value);
Screen.Cursor := crHourGlass;
Application.ProcessMessages;
InVec := TVector.Create (nil);
InVec.Resize(2);
RCCplot.ClearGraf;
TEData.Data.NumericData.MinMax (varix[1],1,varix[1],TEData.NrOfRows,
Mod
Coala
Nr. document
Semnăt .
Data
Coala
93
UTM 526.1 451 ME mins[1], maxs[1]);
TEData.Data.NumericData.MinMax (varix[2],1,varix[2],TEData.NrOfRows,
mins[2], maxs[2]);
TEData.Data.NumericData.MinMax (varix[3],1,varix[3],TEData.NrOfRows,
mins[3], maxs[3]);
TEData.Data.NumericData.Quartiles (varix[3],1,varix[3],TEData.NrOfRows,
Q1, Q2, Q3);
for i:=1 to 3 do
if Mins[i] = Maxs[i] then
begin
Mins[i] := Mins[i] – 0.1;
Maxs[i] := Maxs[i] + 0.1;
end;
RCCplot.Scale1X.RangeLow := mins[1] -(Maxs[1] -Mins[1])*RimPercent;
RCCplot.Scale1X.RangeHigh := Maxs[1]+(Maxs[1] -Mins[1])*RimPercent;
RCCplot.Scale1Y.RangeLow := mins[2] -(Maxs[2] -Mins[2])*RimPercent;
RCCplot.Scale1Y.RangeHigh := Maxs[2]+(Maxs[2] -Mins[2])*RimPercent;
case RGColorScale.ItemIndex of
0 : begin
RCColCode.Scale1X.RangeLow := mins[3 ];
RCColCode.Scale1X.RangeHigh := Maxs[3];
end;
1 : begin
RCColCode.Scale1X.RangeLow := Q2 -abs(Q3 -Q1);
RCColCode.Scale1X.RangeHigh := Q2+abs(Q3 -Q1);
end;
end;
diffx := (RCCplot.Scale1X.RangeHigh -RCCplot.Scale1X.RangeLow)/res ;
diffy := (RCCplot.Scale1Y.RangeHigh -RCCplot.Scale1Y.RangeLow)/res;
AuxMat := TMatrix.Create (nil);
AuxMat.Resize (2, TEData.Data.NrOfRows);
AuxMat.CopyFrom (TEData.Data.NumericData, VarIx[1], 1, VarIx[1],
TEData.Data.NrOfRows, 1, 1);
Mod
Coala
Nr. document
Semnăt .
Data
Coala
94
UTM 526.1 451 ME AuxMat.CopyFrom (TED ata.Data.NumericData, VarIx[2], 1, VarIx[2],
TEData.Data.NrOfRows, 2, 1);
Means := TVector.Create (nil);
Means.Resize(2);
StdDevs := TVector.Create (nil);
StdDevs.Resize(2);
AuxMat.StandardizeColumns (Means, StdDevs);
if StdDevs[1] = 0 then
StdDevs[1] := 1.0;
if StdDevs[2] = 0 then
StdDevs[2] := 1.0;
TargetVec := TVector.Create (nil);
TargetVec.Resize(TEData.Data.NrOfRows);
TEData.Data.NumericData.CopyColToVec (TargetVec, varix[3], 1, TEData.Data.NrOfRows);
RcColCode.DataColor := clBlue;
RcColCode.FillColor := clBlue;
RcColCode.ClearGraf;
RcColCode.Scale1X.LabelType := ftNoFigs;
RcColCode.Caption := '… interpolating 3D values';
dx := (RcColCode.Scale1X.RangeHigh -RcColCode.Scale1X.RangeLow)/res;
RcCPlot.Classdefault := 0;
Plot3D1.Suppress Paint := true;
Plot3D1.ColorLow := CalcColorCoding (Mins[3]);
Plot3D1.ColorMid := CalcColorCoding
((RCColCode.Scale1X.RangeLow+RCColCode.Scale1X.RangeHigh)/2);
Plot3D1.ColorHigh := CalcColorCoding (Maxs[3]);
Plot3D1.Gridmat.Resize (res, res); // setup size of Plot3D grid
for i:=1 to res do
begin
RcColCode.Rectangle (RcColCode.Scale1X.RangeLow+(i –
1)*dx,0,RcColCode.Scale1X.RangeLow+i*dx,1);
RCColCode.ShowGraf;
Application.ProcessMessages;
for j:=1 to res do
Mod
Coala
Nr. document
Semnăt .
Data
Coala
95
UTM 526.1 451 ME begin
InVec.Elem[1] := RCCplot.Scale1X.RangeLow + i*(RCCplot.Scale1X.RangeHigh –
RCCplot.Scale1X.RangeLow)/res;
InVec[1] := (InVec[1] -Means[1])/StdDevs[1];
InVec.Elem[2] := RCCplot.Scale1Y.RangeLow + j*(RCCplot.Scale1Y.RangeHigh –
RCCplot.Scale1Y.RangeLo w)/res;
InVec[2] := (InVec[2] -Means[2])/StdDevs[2];
EstimateByKNN (AuxMat, // TrnMat: TMatrix;
TargetVec,
round(NIONumNb.Value), // kn: integer;
TKnnWMode(RGWeigh ting.ItemIndex), // WeightingMode: TKnnWMode;
NIOSmooth.Value,
Invec,
z, // EstTarget: double;
dbar); // var EstMeanDist: double);
RCCplot.DataColor := CalcColorCoding (z);
RCCplot.FillColor := RCCplot.DataColor;
// trick to store height in RCPlot tag data (asingle and alongint are physically the
same)
RCCPlot.DataTag := round(1000*z);
// plot grid element of contour plot
RCCPlot.Rectangle (RCCplot.Scale1X.RangeLow+i/res*(RCCplot.Scale1X.RangeHigh –
RCCplot.Scale1X.RangeLow) -DiffX,
RCCplot.Scale1Y.RangeLow+j/res*(RCCplot.Scale1Y.RangeHigh –
RCCplot.Scale1 Y.RangeLow) -DiffY,
RCCplot.Scale1X.RangeLow+i/res*(RCCplot.Scale1X.RangeHigh –
RCCplot.Scale1X.RangeLow)+DiffX,
RCCplot.Scale1Y.RangeLow+j/res*(RCCplot.Scale1Y.RangeHigh –
RCCplot.Scale1Y.RangeLow)+DiffY);
Plot3D1.GridMat.Elem[res -i+1,j] := z; // load 3D plot grid element (unscaled in meters)
end;
end;
Plot3D1.SetRange (Maxs[1], Mins[1], Mins[2], Maxs[2], Mins[3], Maxs[3]);
ScrBarSclZChange (nil);
Mod
Coala
Nr. document
Semnăt .
Data
Coala
96
UTM 526.1 451 ME Plot3D1.ColorScaleLow := Mins[3];
Plot3D1.ColorScaleHigh := Maxs[3];
Plot3D1.SuppressPaint := false;
RcCPlot.RemoveItemsByClass (99); // remove any previous sensor data points
if CBoxShowData.Checked then
begin
RcCPlot.Classdefault := 99; // display sensor data
RcCPlot.DataColor := clBlack;
for i:=1 to TEData.Data.NrOfRows do
RCCPlot.MarkAt (TEData.Data[varix[1],i],TEData.Data[varix[2],i],7);
end;
RCCplot.Scale1X.Caption := TEData.ColName[varix[1]];
RCCplot.Scale1X.Caption := TEData.ColName[varix[2]];
RCCPlot.SHowGraf;
Means.Free;
StdDevs.Free;
AUxMat.Free;
TargetVec.Free;
Screen.Cursor := crDefault;
end;
(****************************************************************************)
procedure TFrmDataVis.SpeedButton1Click(Sender: TObject);
(******************************** ********************************************)
begin
if ColorDialog1.Execute then
begin
CSHigh.SelColor := ColorDialog1.Color;
NewCalcNeeded;
end;
end;
(****************************************************************************)
procedure TFrmDataVis.SpeedButton2Click(Sender: TObject);
(****************************************************************************)
begin
Mod
Coala
Nr. document
Semnăt .
Data
Coala
97
UTM 526.1 451 ME if ColorDialog1.Execute then
begin
CSMid.SelColor := ColorDialog1.Color;
NewCalcNeeded;
end;
end;
(*************** *************************************************************)
procedure TFrmDataVis.SpeedButton3Click(Sender: TObject);
(****************************************************************************)
begin
if ColorDialog1.Execute then
begin
CSLow.SelColor := ColorDialog1.Color;
NewCalcNeeded;
end;
end;
(****************************************************************************)
procedure TFrmDataVis.SBStandardColorsClick(Sender: TObject);
(********************************************* *******************************)
begin
CSLow.SelColor := $FF8080;
CSMid.SelColor := $80FF80;
CSHigh.SelColor := $8080FF;
NewCalcNeeded;
end;
(****************************************************************************)
procedure TFrmDataVis.SBGrayScaleClick(Sender: TObject);
(****************************************************************************)
begin
CSLow.SelColor := clBlack;
CSMid.SelColor := clSilver;
CSHigh.SelColor := clWhite;
NewCalcNeeded;
end;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
98
UTM 526.1 451 ME (******************* *********************************************************)
procedure TFrmDataVis.FormShow(Sender: TObject);
(****************************************************************************)
var
i,j : integer;
begin
varix[1] := 1;
varix[2] := 2;
varix[3] := 3;
NLXCoord.LeftText := TEData.ColName[varix[1]];
NLYCoord.LeftText := TEData.ColName[varix[2]];
NLZCoord.LeftText := TEData.ColName[varix[3]];
SBStandardColorsClick(Sender);
TEdata.PopupDMask := 0;
BButExecute.Enabled := false;
TEData.NrOfRows := 40;
for i:=1 to 40 do
for j:=1 to 3 do
TEData[j,i] := Data[i,j];
BButExecuteClick (nil);
end;
(****************************************************************************)
procedure TFrmDataVis.BButExecuteClick(Sender: TObject);
(****************************************************************************)
begin
NLXCoord.LeftText := TEData.ColName[varix[1]];
NLYCoord.LeftText := TEData.ColName[varix[2]];
NLZCoord.LeftText := TEData.ColName[varix[3]];
DisplayPlots;
DisplayColorCodi ng;
if PageControl1.ActivePage = TSData then
PageControl1.ActivePage := TSColorMap;
Plot3D1.Visible := true;
RCCPlot.Visible := true;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
99
UTM 526.1 451 ME BButExecute.Enabled := false;
end;
(****************************************************************************)
proce dure TFrmDataVis.RCCPlotMouseMoveInChart(Sender: TObject;
InChart: Boolean; Shift: TShiftState; rMousePosX, rMousePosY: Double);
(****************************************************************************)
var
pdc : longint;
dist : double;
dcan : TrcChartItem;
begin
NLXCoord.value := rMousePosX;
NLYCoord.value := rMousePosY;
pdc := RCCPlot.FindNearestItemScreen (RMousePosX, rMousePosY, tkRect, 255, Dist);
if pdc >= 0 then
begin
dcan := RCCplot.GetItemParams (pdc);
NLZCoord.value := dcan.tag/1000;
end;
end;
(*****************************************************************************
*)
procedure TFrmDataVis.RGWeightingClick(Sender: TObject);
(********************************************************************* *******)
begin
if RGWeighting.ItemIndex = 0
then begin
LblSmooth.Enabled :=true;
NIOSmooth.Enabled :=true;
end
else begin
LblSmooth.Enabled :=false;
NIOSmooth.Enabled :=false;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
100
UTM 526.1 451 ME end;
NewCalcNeeded;
end;
(****************************************************************************)
procedure TFrmDataVis.NewCalcNeeded;
(****************************************************************************)
begin
if CBoxAutoCalc.Checked
then begin
BButExecut eClick (nil);
end
else begin
Plot3D1.Visible := false;
RCCPlot.Visible := false;
BButExecute.Enabled := true;
end;
end;
(****************************************************************************)
procedure TFrmDataVis.CBoxShowDataClick(Sender: TObject);
(****************************************************************************)
var
i : integer;
begin
RcCPlot.RemoveItemsByClass (99);
if CBoxShowData.Checked then
begin
RcCPlot.Classdefault := 99;
RcCPlot.DataColor := clBlack;
for i:=1 to TEData.Data.NrOfRows do
RCCPlot.MarkAt (TEData.Data[varix[1],i],TEData.Data[varix[2],i],7);
end;
RCCPlot.SHowGraf;
end;
(****************************************************************************)
Mod
Coala
Nr. document
Semnăt .
Data
Coala
101
UTM 526.1 451 ME procedur e TFrmDataVis.SBSaveUserColorClick(Sender: TObject);
(****************************************************************************)
var
SDiag : TSaveDialog;
TFile : TextFile;
begin
SDiag := TSaveDialog.Create (self);
SDiag.Filter := 'Contour Plot Colors|*.cpc';
if SDiag.Execute then
begin
AssignFile (TFile, StripExtension(SDiag.FileName)+'.cpc');
Rewrite (TFile);
writeln (Tfile, CSLow.SelColor);
writeln (Tfile, CSMid.SelColor);
writeln (Tfile, CSHigh.SelColor);
closeFile (TFile);
end;
SDiag.Free;
end;
(****************************************************************************)
procedure TFrmDataVis.SBLoadUsercolorClick(Sender: TObject);
(****************************************************************************)
var
TFile : TextFile;
acolor : TColor;
begin
ODiag.Filter := 'Contour Plot Colors|*.cpc';
if ODiag.Execute then
begin
AssignFile (TFile, ODiag.FileName);
Reset (TFile);
readln (Tfile, acolor);
CSLow.SelColor := acolor;
readln (Tfile, acolor);
Mod
Coala
Nr. document
Semnăt .
Data
Coala
102
UTM 526.1 451 ME CSMid.SelColor := acolor;
readln (Tfile, acolor);
CSHigh.SelColor := acolor;
closeFile (TFile);
end;
NewCalcNeeded;
end;
(****************************************************************************)
procedure TFrmDataVis.BButLoadDataClick(Sende r: TObject);
(****************************************************************************)
begin
ODiag.Filter := 'Data (ASC Format)|*.asc';
if ODiag.Execute then
begin
TEData.SuppressPaint := true;
TEData.Data.ImportASC (ODiag.FileName);
TEData.Su ppressPaint := false;
end;
NewCalcNeeded;
end;
(**************************************************************************)
procedure TFrmDataVis.BButExitClick(Sender: TObject);
(**************************************************************************)
begin
close;
end;
(****************************************************************************)
procedure TFrmDataVis.ScrBarAngleXChange(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.ViewAngleX := ScrBarAngleX.Position;
NLabX.Value := ScrBarAngleX.Position;
end;
(****************************************************************************)
Mod
Coala
Nr. document
Semnăt .
Data
Coala
103
UTM 526.1 451 ME procedure TFrmDataVis.ScrBarAngleZChange(Sender: TObject);
(**************************** ************************************************)
begin
Plot3D1.ViewAngleZ := ScrBarAngleZ.Position;
NLabZ.Value := ScrBarAngleZ.Position;
end;
(****************************************************************************)
procedure TFrmDataVis.ScrBarMagni fChange(Sender: TObject);
(****************************************************************************)
begin
Plot3d1.Magnification := ScrBarMagnif.position/100;
NLabMag.Value := ScrBarMagnif.position/100;
end;
(******************************************* *********************************)
procedure TFrmDataVis.CSelHighChange(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.ColorHigh := CSHigh.SelColor;
end;
(************************************* ***************************************)
procedure TFrmDataVis.CSelLowChange(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.ColorLow := CSLow.SelColor;
end;
(****************************************************************************)
procedure TFrmDataVis.CselMidChange(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.ColorMid := CSMid.SelColor;
end;
(****************************************************************************)
procedure TFrmDataVis.CSelGridChange(Sender: TObject);
(****************************************************************************)
Mod
Coala
Nr. document
Semnăt .
Data
Coala
104
UTM 526.1 451 ME begin
Plot3D1.ColorMesh := CSelGrid.SelC olor;
end;
(****************************************************************************)
procedure TFrmDataVis.CBoxMeshClick(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.MeshVisible := CBoxMesh.Checked;
CSelGrid.Enabled := CboxMesh.Checked;
end;
(****************************************************************************)
procedure TFrmDataVis.Rotate1Click(Sender: TObject);
(************************************************************** **************)
begin
Plot3D1.MouseAction := maRotate;
end;
(****************************************************************************)
procedure TFrmDataVis.Pan1Click(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.MouseAction := maPan;
end;
(****************************************************************************)
procedure TFrmDataVis.Zoom1Click(Sender: TObject);
(***** ***********************************************************************)
begin
Plot3D1.MouseAction := maZoom;
end;
(****************************************************************************)
procedure TFrmDataVis.RotateandZoom1Click(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.MouseAction := maRotAndZoom;
end;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
105
UTM 526.1 451 ME (****************************************************************************)
procedure TFrmDataVis.RotXOnly1Click(Sender: TObject );
(****************************************************************************)
begin
Plot3D1.MouseAction := maRotXOnly;
end;
(****************************************************************************)
procedure TFrmDataVis.RotZOnly1Click(Sender: TObj ect);
(****************************************************************************)
begin
Plot3D1.MouseAction := maRotZOnly;
end;
(****************************************************************************)
procedure TFrmDataVis.Plot3D1MouseAction(Sender: TObject; var CenterX,
CenterY: Integer; var RotXAngle, RotZAngle, Magnification: Double;
Shift: TShiftState);
(****************************************************************************)
begin
NLabX.Value := Rot XAngle;
NLabZ.Value := RotZAngle;
NLabMag.Value := Magnification;
end;
(****************************************************************************)
procedure TFrmDataVis.ScrBarSclZChange(Sender: TObject);
(****************************************************************************)
begin
NLabZScale.Value := ScrBarSclZ.Position/100;
Plot3D1.Setrange (Plot3D1.RangeXLow, Plot3D1.RangeXHigh,
Plot3D1.RangeYLow, Plot3D1.RangeYHigh,
(Maxs[3]+Mins[3])/2 – (Maxs[3] -Mins[3])/2/ScrBarSclZ.Position*100,
(Maxs[3]+Mins[3])/2 + (Maxs[3] -Mins[3])/2/ScrBarSclZ.Position*100);
end;
(****************************************************************************)
procedure TFr mDataVis.SBResetClick(Sender: TObject);
Mod
Coala
Nr. document
Semnăt .
Data
Coala
106
UTM 526.1 451 ME (****************************************************************************)
begin
Plot3D1.SuppressPaint := true;
ScrBarAngleZ.Position := 160;
ScrBarAngleX.Position := 75;
ScrBarMagnif.Position := 100;
ScrBarSclZ.Position := 40;
Plot3D1.SuppressPaint := false;
end;
(****************************************************************************)
procedure TFrmDataVis.Plot3D1BeforeRenderPolygon(Sender: TObject;
canvas: Tcanvas; var Handled: Boolean; CellX, CellY: Integer;
quad: TQuad; var color: TColor);
(****************************************************************************)
begin
color := CalcColorCoding(Plot3D1.GridMat.Elem[CellX,CellY]);
end;
(**************************************************** ************************)
procedure TFrmDataVis.Plot3D1BeforeDrawScaleLabel(Sender: TObject;
canvas: Tcanvas; ScaleType: TP3ScaleKind;
var CurrentTickLabel: String; ChartX, ChartY: Integer);
(************************************************************ ****************)
begin
case ScaleType of
p3skX : CurrentTickLabel := CurrentTickLabel + ' m';
p3skY : CurrentTickLabel := CurrentTickLabel + ' m';
p3skZ : CurrentTickLabel := CurrentTickLabel + ' m';
end;
end;
(************************************** **************************************)
procedure TFrmDataVis.FormResize(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.CentX := Plot3D1.Width div 2 -20;
Mod
Coala
Nr. document
Semnăt .
Data
Coala
107
UTM 526.1 451 ME Plot3D1.CentY := Plot3D1.Height div 2;
end;
(****************************************************************************)
procedure TFrmDataVis.NewCalcNeededAfterClick(Sender: TObject);
(****************************************************************************)
begin
NewCalcNeeded;
end;
(****************************************************************************)
procedure TFrmDataVis.TEDataChange(Sender: TObject);
(****************************************************************************)
begin
Plot3D1.Visible := false;
RCCPlot.Visible := false;
BButExecute.Enabled := true;
end;
(****************************************************************************)
procedure TFrmDataVis.CBoxEditDataAllowedClick(Sender: TObject);
(******************************************************************* *********)
begin
if CboxEditDataAllowed.Checked
then TEData.Options := TEData.Options + [goEditing]
else TEData.Options := TEData.Options – [goEditing];
end;
(****************************************************************************)
procedure TFrmD ataVis.Plot3D1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
(****************************************************************************)
begin
ScrBarAngleZ.Position := round(NLabZ.Value);
ScrBarAngleX.Position := round(NLabX.Value);
ScrBarMagnif.Position := round(100*NLabMag.Value);
end;
end.
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: reconstituirea obiectelor 3D în baza senzorilor optici Litera Coli 83 UTM FCIM C – 131 CUPRINS INTRODUCERE …………………………….. [617095] (ID: 617095)
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.
