Prelucrarea Si Analiza Imaginilor Folosind Labview
CAPITOLUL 1
Prelucrarea și analiza imaginilor folosind LabView
1.1 Concepte de bază
Prelucrarea și analiza imaginilor își găsește utilizarea în multe domenii. În medicină prelucrarea computerizată face posibilă îmbunătățirea contrastului pentru ușurarea interpretării radiografiilor sau a altor tipuri de imagini biomedicale [2]. În aplicații militare prin procesarea imaginilor din satelit sau prelucrarea automată a amprentelor sau feței, în domeniul artei prin metode de îmbunătățire și restaurare a imaginilor degradate ale unor obiecte irecuperabile, tablouri, în tehnică și industrie prin îmbunătățirea imaginilor transmise din spațiul cosmic, studiul poluării cu ajutorul imaginilor aeriene, cartografierea solului, inspecția vizuală a produselor, în meteorologie [33].
Sistemele de achiziție și recunoaștere a imaginilor se utilizează într-o gamă largă de aplicații industriale și științifice. Aceste sisteme monitorizează în timp real procesele de fabricație, în acest fel pot corecta rapid problemele ce apar în fluxul de producție.
Sistemele de achiziție și prelucrarea imaginilor pot fi folosite în:
controlul tehnic de calitate: defectoscopie, verificarea prezenței unor părți componente, calibrarea aparatelor de măsură cu scală (Figura 1.1);
Figura 1.1 Aplicație pentru calibrarea aparatelor de măsură cu scală
contorizarea conținutului: contorizarea particulelor sau a celulelor, citirea etichetelor cu coduri de bare (Figura 1.2);
Figura 1.2 Aplicație pentru citirea etichetelor cu coduri de bare
inspecția liniilor de producție și asamblare: plasarea componentelor pe plăcile de circuite imprimate (Figura 1.3), verificarea nivelului lichidelor, inspectarea afișajelor electroluminiscente, controlul medicamentelor.
Figura 1.3 Aplicație pentru verificarea componentelor electronice
Structura tipică a unui sistem de prelucrare și analiză a imaginilor (Figura 1.4) este alcătuită din punct de vedere funcțional din următoarele blocuri:
Figura 1.4 Blocurile funcționale ale unui sistem de prelucrare și analiză a imaginilor
Imaginile la origine sunt semnale atemporale descrise de funcții spațiale de distribuție a intensității luminoase într-un plan. Digitizarea imaginii se realizează prin discretizarea spațială cât și cuantizarea valorii intensității luminoase. Astfel o imagine digitală este o structură bidimensională, o matrice de date. Entitatea elementară a imaginii se numește pixel; numele provine din engleză – „picture element”.
După tipul datelor din această structură bidimensională, imaginile pot fi împărțite în:
imagini scalare, de exemplu imaginile monocrome și imaginile cu nivele de gri;
imagini vectoriale, de exemplu imaginile color, în care fiecare componentă este un vector cu trei elemente ce corespund celor trei constituente de bază ale oricărei culori.
Imaginile monocrome și imaginile cu nivele de gri sunt cele mai simple tipuri de imagini și sunt cel mai frecvent folosite în aplicații tehnice. Un pixel are un anumit nivel de gri, pentru imagini alb-negru, sau o anumită culoare, pentru imagini color, codificată printr-un număr de biți. O imagine reprezentată pe 8 biți va avea un număr de 256 niveluri de gri, negrul este codat cu 0, iar albul este codat cu 255, iar o imagine pe 32 de biți va avea 4294967296 nivele de gri.
Exită diferite modele de reprezentare a imaginilor color, cel mai utilizat este modelul RGB (Red-Green-Blue), fiecare canal reprezintă o matrice cu intensitatea luminoasă corespunzătoare culorii de bază roșu, verde sau albastru. De exemplu pentru a obține gri este necesar 0.299 roșu, 0.587 verde și 0.114 albastru.
Imaginea color se obține prin suprapunerea celor trei matrici componentă cu componentă.
1.2 Mediul de programare LabView
LabView este un mediu de programare grafic folosit pentru achiziție, analiză, prelucrare, prezentare a datelor și transmiterea rezultatelor. Acesta oferă flexibilitatea celorlalte limbaje de programare și totodată o interfață prietenoasă cu utilizatorul.
În mediul de programare grafică oferit de LabView, instrumentul virtual definește un modul software, un program, ce constă dintr-o interfață cu utilizatorul, panoul frontal, ce simulează intuitiv partea din față a instrumentului clasic, și un program de tip schemă-bloc, o diagramă, accesibilă numai programatorului [15]. Utilizatorul dezvoltă aplicația soft prin construcția ierarhizată de Instrumente Virtuale. Un instrument virtual este un pachet de programe grafice care arată și acționează ca un instrument.
1.2.1 Panoul frontal
Panoul frontal este interfața cu utilizatorul a instrumentului virtual și elementul de bază al programelor elaborate în LabView deoarece cu ajutorul său se realizează introducerea sau extragerea datelor în/din mediul de programare [8]. În panoul frontal, comenzile care implică intervenția utilizatorului sunt în foarte mare măsură simplificate, fiind preferate elementele de comandă și afișare grafice, denumite controale sau indicatoare. Controalele reprezintă intrările în instrumentul virtual, cele care introduc datele, iar ieșirile, cele care comunică operatorului datele rezultate din proces, poartă numele de indicatoare, elemente de afișare. Controalele au diferite aspecte, precum: butoane, întrerupătoare, comutatoare, cursoare, cadrane, fiecărui tip corespunzându-i un element dintr-un instrument clasic.
În LabView pot fi tratate structuri de date de la simple până la foarte complexe, valori numerice, șiruri de texte, grafice. La indicatoare, aceste structuri de date gestionate de program își stabilesc singure forma optimă a reprezentării datelor pe care le primesc.
Întrările și ieșirile de date sunt duble, fiind destinate atât operatorului, cât și programului, iar distincția între controale și indicatoare nu este rigidă, deși unele sunt exclusiv elemente de afișare, iar altele de comandă.
1.2.2 Diagrama bloc
Diagrama bloc însoțește panoul frontal și poate fi imaginată ca fiind un cod sursă, așa cum este cunoscut în limbajele de programare clasice. Componentele sale reprezintă nodurile programului, precum structurile de decizie, operatorii matematici, funcțiile de prelucrare logice. Între componente, legăturile se realizează prin fire, wire, care descriu fluxul de date în interiorul instrumentului virtual creat de program.
Diagrama bloc reprezintă, de fapt, o schemă prin care programatorul descrie algoritmul după care aplicația va efectua calculele și raționamentele necesare pentru preluarea și prelucrarea informațiilor. În majoritatea cazurilor, după ce programatorul a realizat o aplicație și a livrat-o unui utilizator, acesta din urmă nu mai are acces la diagramă, așa cum utilizatorii altor programe nu au acces la codul sursă al acestora.
1.2.3 Achiziția datelor și controlul instrumentelor
Cu ajutorul LabView se pot achiziționa semnale de la o varietate de echipamente. Pot fi achiziționate date de la instrumente cu port de comunicare GPIB, seriale, Ethernet, PXI și VXI, utilizând driverele incluse. Comunicarea se poate face cu mai mult de 2000 de instrumente aparținând a peste 200 de producători, folosind driverele standard de comunicație LabView.
Aceste drivere de comunicație simplifică controlul instrumentelor și timpul de dezvoltare a noi aplicații, eliminând necesitatea învățării de protocoale de programare pentru fiecare instrument în parte. Pentru a comunica driverele folosesc Visual Instrument Software Architecture, VISA, folosind același cod LabView pentru o gamă de bus-uri de comunicație, cum ar fi GPIB sau serial. Driverele VISA preiau controlul protocoalelor de comunicare indiferent pe ce tip de bus este instrumentul.
Controlul instrumentelor fizice cu LabView este programat utilizând simboluri grafice, blocuri, ce sunt interconectate, pentru a construi interfața unui instrument virtual. Controlul instrumentelor automate cu ajutorul LabView este simplu și intuitiv la fel ca manevrarea panourilor instrumentelor fizice.
Instrumentul virtual are în componență module reutilizabile, iar panourile frontale pot fi utilizate intuitiv. Fiecare instrument virtual poate fi introdus în diagrama bloc într-o simplă formă grafică, icon, și interconectată grafic cu un alt icon, pentru a construi un instrument virtual de nivel superior [16].
1.2.4 Analiza datelor
LabView este un sistem de programare complet ce include posibilități extinse de analiză și prelucrare a datelor. Există o multitudine de funcții integrate și module adiționale dedicate analizei, măsurărilor și procesării semnalelor. Folosind aceste funcții integrate nu mai este necesară scrierea (programarea) algoritmilor pentru transformarea datelor achiziționate în informație utilizabilă. Paleta de funcții este o fereastră ce conține sub-palete cu diverse categorii de funcții, proceduri sau structuri specifice de programare.
Funcțiile integrate în LabView sunt: primitive, metode numerice, funcții statistice, procesare numerică a semnalelor și filtrare [35]:
Primitive:
data, timpul, alertarea utilizatorului;
operații aritmetice, operații logice;
concatenare, formatare, partajare;
sin, cos;
Metode numerice:
adunare, scădere, trecere de la forma algebrică la forma polară și invers;
analiză factorială, sign, sinc, erf;
Funcții statistice:
medie, mediană, abatere standard, varianță, RMS, histograme;
regresie liniară, polinomială, exponențială, reziduală;
Procesarea numerică a semnalelor:
transformata lui Fourrier, putere spectrală, convoluția, corelare;
integrarea, diferențierea, interpolarea, decimarea;
Gausiană, Hanning, Hamming, Triunghi;
generare impuls, puls, dreptunghi, triunghi, exponențială, rampă;
Filtre:
trece jos, trece sus, trece bandă, oprește bandă, Bessel, Hanning, Chebzshev, Elliptic, Barlett, ButterWorth.
1.2.5 Prezentarea datelor
În LabView se pot afișa datele de intrare și ieșire pe panoul frontal. Se beneficiază de o gamă largă de instrumente de vizualizare, incluzând instrumente de generare a tabelelor și graficelor și instrumente de vizualizare 2D și 3D. Modul de prezentare se poate modifica oricând cum ar fi: culorile, font-urile, tipul graficelor în mod interactiv.
Pot fi executate mai multe instrumente virtuale în paralel, de asemenea se pot accesa panourile frontale ale acestora. Rezultatele afișate în panoul frontal de control cât și alte date pot fi salvate digital în fișiere, sau pot fi tipărite.
Toolset-ul Web Publishing Tool LabView permite posibilitatea de a publica aplicația realizată pe Web, și a o face accesibilă ca pagină de internet.
1.3 LabView Vision
În mediul de programare LabView prelucrarea și analiza imaginilor se poate face cu ajutorul pachetului Vision. Acesta este compus din:
Vision Aquisition Software – pachetul de programe de bază care include driverele necesare achiziționării de imagini NI-IMAQ și NI-IMAQdx. NI-IMAQdx oferă posibilitatea achiziționării de imagini de la camere video cu interfață IEEE 1394 (FireWire), GigE Vision (Ethernet) și USB;
Vision Development Module – conține funcții de procesare a imaginilor;
Vision Builder for Automated Inspections – este o aplicație externă utilizată pentru a crea aplicații vision fără necesitatea programării.
1.3.1 Achiziția digitală a imaginilor
Caracteristicile de achiziție ale camerei video se configură ușor cu ajutorul blocului Vision Aquisition Express (Figura 1.5). Acest bloc conține patru secțiuni:
select aquisition source – arată toate camerele video conectate la calculator;
select aquisition type – determină modul de afișare a imaginii. Există patru moduri: achiziție singulară cu procesare, achiziție continuă cu procesare în timp real, achiziție finită cu procesare în timp real și achiziție finită cu post procesare;
configure aquisition settings – se configură proprietățile imaginii: mărime, contrast, luminozitate etc.;
controls and indicators – controlere și indicatoare ce vor fi vizibile în interfața programului.
Achiziția de imagini cu o cameră web se poate face și utilizând funcții ale driverului IMAQdx. Primul bloc este IMAQ Create block care alocă memorie pentru noua imagine în funcție de tipul imaginii ales (RGB, Grayscale), iar al doilea bloc în acest caz este Snap (Figura 1.6) care preia o singură imagine de la camera web. Se poate folosi și blocul Grab care preia imagini în mod continuu.
În cazul în care imaginile sunt stocate pe hard disc acestea pot fi accesate folosind funcția IMAQ Read Image (Figura 1.7). Ca și în cazul achiziției de imagini cu camera web blocul IMAQ Create formatează noua imagine, iar blocului IMAQ Read Image trebuie să i se specifice calea spre imagine.
1.3.2 Procesare de imagini
În Vision Development Module se găsesc funcțiile necesare prelucrării imaginilor. Acestea sunt grupate după sfera de acțiune asupra imaginii (îmbunătățire, restaurare, compresie, segmentare, analiză).
Îmbunătățirea imaginilor se referă la o clasă de operații, ce au ca scop mărirea detectabilității componentelor imaginii. Această evidențiere depinde de percepția vizuală a unui observator uman și este o apreciere subiectivă a imaginii.
Utilizând tehnicile de îmbunătățire a imaginilor nu se generează informație suplimentară despre imaginea originală, ci doar informația existentă este prezentată sub o altă formă, mai ușor de evaluat de către utilizator. Orice imagine poate fi îmbunătățită, obținând o imagine modificată, dar subiectiv preferabilă.
În general, îmbunătățirea imaginilor constă în accentuarea unor caracteristici ale imaginii, cum ar fi muchiile, contururile sau contrastul.
Operatorii de îmbunătățire a imaginilor se pot împărți în două categorii:
operatori punctuali, (corespondență punctuală între valoarea originală a fiecărui pixel și valoarea sa după transformare);
operatori spațiali:
locali sau de vecinătate, (valoare unui pixel se obține din valoarea originală a pixelului respectiv și din valorile originale ale pixelilor din vecinătatea acestuia);
operatori integrali, (valoarea unui pixel depinde de valorile tuturor pixelilor din imaginea originală).
1.3.2.1 Operatori punctuali
Operatorii punctuali realizează o corespondență „unu la unu” între valorile nivelului de gri ale imaginii originale și ale imaginii rezultat. Valoarea pixelului (1.1) în imaginea rezultat va depinde doar de valoarea acestuia din imaginea originală, de unde și denumirea de „operație punctuală”. Matematic se poate scrie:
, (1.1)
unde u este imaginea originală, iar v imaginea îmbunătățită. reprezintă noua valoare a pixelului , iar vechea valoare [5].
Operația punctuală este descrisă de funcția T. O transformare punctuală este reprezentată în Figura 1.8 [2].
Figura 1.8 Operație punctuală de imbunătățire a unei imagini
Operatorii punctuali de îmbunătățire a imaginilor pot fi împărțiți în:
operatori de modificare a contrastului (contrast streching);
transformări de decupare (clipping, slicing, thresholding);
operatori de modificare a histogramei.
1.3.2.2 Negativarea imaginii
Negativarea imaginii (Figura 1.9) este una din cele mai simple modificări ale contrastului în care un pixel negru devine alb și vice-versa (1.2) [2]. Transformarea este definită prin ecuația: , (1.2)
N – numărul de niveluri de cuantizare de gri.
1.3.2.3 Accentuarea contrastului
Acest operator se folosește pentru îmbunătățirea imaginilor cu contrast scăzut. Acesta poate apărea datorită unei slabe iluminări, a unei iluminări neuniforme sau din cauza unor neliniarități ale senzorului de captură a imaginii. Pentru accentuarea contrastului (Figura 1.10) se pot folosi diferite tipuri de funcții (1.3) [2] (linare, neliniare, sinusoidale). O funcție linară de accentuare a contrastului poate fi definită în felul următor:
. (1.3)
Pentru valorile inițiale cuprinse între u1 și u2 se vor obține niveluri de gri cuprinse între v1 și v2. Imaginea prelucrată va avea un contrast mai mare sau mai slab în funcție de valorile diferențelor v2-v1 și u2-u1.
Valorile raporturilor , determină nivelele de gri.
Câteva cazuri particulare a transformării liniare de contrast pe porțiuni (1.4) [2] pot fi de asemenea de interes. Un exemplu în acest sens este extinderea nivelurilor de gri (Figura 1.11) cu următoarea expresie matematică:
. (1.4)
1.3.2.4 Decuparea intervalelor de nivele de gri
Prin aplicarea acestor operatori (1.5) [2] se urmărește evidențierea unei porțiuni din gama nivelurilor de gri. Transformarea de „clipping” (Figura 1.12) păstrează nemodificat un interval de niveluri de gri, restul nivelurilor de gri fiind redus la o valoare unică numită fundal.
(1.5)
1.3.2.5 Operatori spațiali
Operatorii spațiali corespund operațiilor care iau în considerare un grup de pixeli. Astfel pentru calcularea noii valori a unui pixel se iau în considerare și valorile pixelilor vecini. Spre exemplu dacă se consideră o vecinătate formată din opt pixeli și o mască valoarea noului pixel (1.6) [14] la poziția x,y se calculează cu relația următoare:
. (1.6)
Un set special de operatori spațiali sunt filtrele de imagini:
filtrul trece-sus, care elimină componentele de frecvență joasă, și sunt folosite pentru detectarea contururilor din imagini unde au loc variații bruște ale luminanței (Figura 1.15, a));
filtrul trece-jos care elimină frecvențele înalte din imagini și realizează netezirea imaginilor (Figura 1.15, b)) [4].
Matricile clasice pentru filtrele trece-sus și trece-jos sunt:
.
1.3.2.6 Modificarea histogramei
Histograma este o funcție ce pune în evidență frecvența relativă de apariție a nivelurilor de gri dintr-o imagine (Figura 1.16). Histograma (1.7) [2] poate fi exprimată cu următoarea expresie matematică:
. (1.7)
Forma histogramei este influențată de proprietățile imaginii, iar analiza acesteia poate oferi informații despre caracteristicile imaginii [32].
1.3.2.7 Egalizarea histogramei
Egalizarea histogramei reprezintă o operație de accentuare a contrastului și are ca scop obținerea unei histograme uniforme (Figura 1.17) [5].
1.3.2.8 Segmentarea imaginilor
În urma aplicării operatorilor de segmentare imaginea este descompusă în regiuni ce satisfac anumite criterii. Astfel unui pixel i se atribuie valoare 0 sau 1 dacă aparține sau nu la o anumită regiune de interes. Metodele de segmentare se pot clasifica în metode de segmentare orientate pe contururi, din care amintim extragerea contururilor prin metode: de gradient și derivative, neliniare, liniare optimale și modelare matematică; și metode de segmentare orientate pe regiuni: etichetarea imaginilor binare, segmentarea pe histogramă, creșterea și fuziunea regiunilor, segmentarea texturilor și segmentarea prin metode de clustering (Figura 1.18).
Un exemplu de segmentare (1.8) [14] de imagine orientat pe contur de gradient este Prewitt Edge Detector în care măștile de gradient x și y sunt definite astfel:
,
, , . (1.8)
1.3.2.9 Recunoașterea de forme
Recunoașterea de forme (Figura 1.19 [14]) este o tehnică care este aplicată la detecția și recunoașterea obiectelor. Ideea de bază este simplă și constă în a compara imaginea achiziționată cu o imagine șablon. Algoritmul de comparatie poate fi adaptat pentru a găsi și forme care deviază puțin față de imaginea șablon.
Figura 1.19 Recunoașterea formelor
În exemplul de mai sus este prezentat un sistem de recunoaștere al unei forme. Achiziția este făcută cu o cameră web, cu ajutorul blocului Vision Aquisition, imaginea color este convertită în nivele de gri cu blocul IMAQ Extract Single Color Plane după care ajutorul blocului Vision Assistant se face compararea cu imaginea șablon.
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: Prelucrarea Si Analiza Imaginilor Folosind Labview (ID: 123062)
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.
