Programul Matlab
Introducere
Lucrarea de față are drept scop studiul asupra posibilitaților de prelucrare și analiză a imaginilor cu ajutorul programului MATLAB.
Prelucrarea si analiza imaginilor mai poate fi numită si pe scurt prelucrarea imaginilor, a luat naștere din cauza necesității si ideii de a înlocui observatorul uman printr-o mașină.Cel mai important de spus este faptul că analiza imaginilor nu s-a oprit la simplul fapt de a înlocui observatorul uman, deoarece au apărut soluții inovatoare pentru probleme cu care acesta nu mai fusese confruntat asa cum regasim in cazul imaginilor non-vizibile ( ca exemplu putem întâlni in cazul imaginilor acustice, ultrasonore, radar).
Prelucrarea imaginilor înglobează posibilitatea de a dezvolta mașina totală de viziune, capabilă să realizeze funcțiile vizuale ale oricărei viețuitoare.
În terminologia anglo-saxonă (originală), în care disciplina este denumită Digital Image Processing, deci prelucrarea digitală a imaginilor. Se înțelege prin prelucrare digitala a imaginilor, prelucrarea pe un calculator digital a unor date bidimensionale (imagini).
Cuvântul cheie digital este de multe ori confundat în traducerile românești cu termenul de numeric. În dicționarul limbii moderne, definiția termenului de numeric este aceea de ” care aparține numerelor, privitor la numere, exprimat prin numere”. Rezultatul oricărui calcul este numeric.
Termenul digital înseamnă însă ”ceea ce este referitor la reprezentarea informatiei discrete în calculatoare”.
Atâta vreme cât acceptăm ideea că unealta de lucru în prelucrarea imaginilor este calculatorul, și acesta la rândul său este digital, atunci și prelucrarea este la rândul ei digitală. Desigur, există și prelucrări de imagini care sunt analogice, așa cum sunt toate prelucrările în cadrul lanțului de transmisie si recepție a imaginii standard de televiziune.
CAPITOLUL 1
PRELUCRAREA IMAGINILOR
Imagini digitale
Imaginile sunt funcții definite pe un domeniu spațial, ce pot fi transmise ca semnale,iar acestea nu pot fii funcții temporale.
Imaginile sunt formate din tablouri sau matrici, adică este o structură bidimensională de date. Elementul de bază din care este formată o imagine este pixelul.
Datele din structura bidimensională pot fi:
numere naturale;
numere reale;
numere complexe;
După tipul datelor din structura bidimensională, imaginile prelucrate pot fi împarțite în mai multe categorii:
imagini scalare, acestea au fiecare componentă un scalar;
imagini vectoriale, au fiecare componentă un vector de numere;
Imaginile scalare se pot gasi sub forma de imagini monocrome,adică punctele au doar două valori, în general alb-negru și sub forma de imagini cu nivele de gri.
Imaginile scalare se mai pot împarți si după valoarea numerică a pixelilor. Acestea sunt:
imagini de intensitate, în care pixelii unei astfel de imagini pot avea orice fel de valori: reale sau naturale.
imagini indexate, pentru afișarea acestora este necesară o informație suplimentară, de asociere între indici si culori. Această asociere se face cu ajutorul unei tabele de culoare.
Tabela de culoare este o matrice în care fiecare linie conține descrierea unei culori, iar cele trei componente ce definesc culoarea sunt intensitațile relative de roșu, verde si albastru.
Imaginile vectoriale se găsesc în special în imaginile de teledetecție ale sateliților, imagini de termodetecție în benzi de infraroșu. În această categorie mai intră și imaginile stereo și secvențele de imagini.
După natura lor imaginile se clasifică în:
imagini abstracte care sunt funcții matematice;
imagini non-vizibile, acestea nu sunt percepute de ochiul uman în mod direct. Sunt folosite de parametrii fizici cum ar fi: presiunea, temperatura, densitatea;
imagini vizibile, sunt percepute în mod direct de ochiul uman. Ele la rândul lor sunt imagini optice (holograme) sau imagini propriu-zise care se referă la desene, picturi, fotografii, schițe etc.
Structura unui sistem de prelucrare si analiză a imaginilor
Structura tipica a unui sistem de prelucrare si analiza imaginilor este alcatuită din punct de vedere funcțional dintr-un număr mic de blocuri, ca in figura 1.1.
Figura 1.1 Schema generală a unui sistem de analiză și prelucrare a imaginilor
Componentele sistemului de obtinere, prelucrare si analiza a imaginii sunt:
sistemul de formare a imaginii: strânge radiația electromagnetică a obiectului studiat pentru a forma imaginea trăsăturilor de interes;
convertorul de radiație: convretește radiația electromagnetică din planul imaginii într-un semnal electric;
Sistemul de formare a imaginii si convertorul de radiație formează senzorul; acesta realizează o proiecție plană;
sistemul de achiziție: convertește semnalul electric al senzorului într-o imagine digitală;
sistemul de prelucrare;
software-ul specializat;
Sistemul software se poate descompune in mai multe module ce au ca atributii: restaurarea, compresia, îmbunătățirea, segmentarea și analiza imaginii.
Blocul de îmbunătățire a imaginilor este util pentru a extrage trăsăturile caracteristice ale obiectelor, poate elimina zgomotele suprapuse imaginii și mărirea confortului vizual.
Restaurarea imaginilor are ca scop minimizarea sau eliminarea efectelor unor perturbații (zgomote) și a unor degradări care reprezintă imperfecțiuni și limitări ale senzorilor.
Compresia imaginilor are ca scop reducerea volumului de date, acest lucru se intâmplă cu ajutorul unei transformări reversibile și anume imaginea trebuie să fie recuperată integral atunci cand aceasta este comprimată.
Procesul de segmentare se referă la descompunerea unei imagini în elementele sale constituente. Segmentarea are legatură strânsă cu algoritmii de analiză, iar scopul principal al acestora este de a realiza masurători cantitative sau evaluări calitative asupra unor categorii de obiecte prezente în imaginea dată.
Tehnica de prelucrare și analiză a imaginilor cuprinde o gamă largă de aplicații pentru orice domeniu de activitate. Astfel de domenii unde putem găsi această tehnică sunt:
descoperirea resurselor tereste cu ajutorul imaginilor de către: sateliți, cartografiere geografică, predicția recoltelor, urmărirea vremii, controlul și prevenirea incendiilor și inundațiilor;
domeniul ecologic;
transmisia și compresia imaginilor, se regăsesc în: televiziunea digitală, sisteme de teleconferință, transmisiile fax, comunicația pe rețele distribuite, birotică;
domenii militare, în aceste domeniu sunt prezentate atât etapele fundamentale de prelucrare a imaginii ca în figura 1.2, cât și imaginea aeriană prezentată în figura 1.3;
Figura 1.2: Etape fundamentale de prelucrare digitală a imaginii în domeniul militar
Reprezintă, probabil, una din cele mai specatculoase rezultate în cadrul aplicațiilor prospective militare prin intermediul fotografierii aeriene, având avantajul surprinderii, datorită perspectivei generale, oferită de înălțime, a unor obiective de diferite dimensiuni, imposibil sau foarte dificil de surprins în mod natural la suprafața solului, perspectiva integrală și clară fiind posibilă doar din punctul de vedere ce-l poate oferi fotografia aeriană.
Figura1.3: Fotografie aeriană
domenii în medicină, întâlnim astfel de aplicații pentru: prelucrarea radiografiilor cu raze X, echografiile, angiogramele, tomografiile, imaginile de rezonanță magnetică nucleară: un exemplu de aplicație este prezentată în figura 1.4
Ecografiaestemetodaprin care se pot vizualizadiferitestructurianatomice cu ajutorulultrasunetelor. Principiulecografieiesteasemanătorcelui sonar șiconstă in emiterea de ultrasunete de către o sondăspecială. Acesteultrasunetesuntreflectate de structurileanatomiceîntâlniteșiapoirecepționateșitransformateîntr-o scară de tonurialb-negrupe monitor. Ultrasunetelesuntvibrațiimecanice cu frecvențe de peste 20.000 Hz, imperceptibileauzuluiuman, care suntinofensivepentrustructurileanatomicepe care le întalnesc.
Figura 1.4 Echografie
domenii industriale, sunt cele mai întalnite clase de aplicații, acolo unde componentele de prelucrare și analiză a imaginilor sunt folosite în sisteme mari asigurare a calității produselor: un astfel de exemplu se poate vedea în figura 1.5 care prezintă un proiect solar;
Ideeaeste de a extragedioxidul de carbon din atmosferăși a-l convertiîncombustibilestedestul de simplă. La temperaturiridicate, dioxidul de carbon șiapa se disociazăînhidrogen, monoxid de carbon șioxigen. Amestecul de hidrogenșimonoxid de carbon, cunoscut sub numele de gaz de sintezăsausingaz, poate fi apoitransformatînhidrocarburilichide, cum ar fi benzinăsaukerosenprinprocesul Fischer-Tropsch, care a fostinventat de chimiștii Franz Fischer și Hans Tropsch, în Germania anilor 1920.
Figura 1.5: Proiect solar
Odată cu impunerea normelor de ”calitate totală” ale standardului ISO9000, soluțiile sunt extrem de specifice și puternic legate de procesul de fabricație.
Pentru aceasta se poate vedea comarația între câteva caracteristici ale sistemului vizual și de prelucrare uman și un sistem de prelucrare și analiză a imaginilor folosite pentru aplicații industriale prezentate în tabelul 1.1 de mai jos.
Tabel1.1:Compara¸tiaîntrecaracteristiciesen¸tialealesistemului vizualuman¸sisistemele deprelucrarea¸sianaliza imaginilor
Stocarea imaginilor
Pentru stocarea imaginilor există două moduri: stocarea în memoria de lucru a unității de prelucrare a imaginii de lucru și stocarea de lungă durată imaginilor, în fișiere, pe suporturi externe de memorie. Există și o diferență între cele două tipuri de stocare ,aceea fiind că în memorie, imaginea va fii reprezentată complet, în formă necomprimată, pentru a permite accesul rapid direct la informația fiecărui pixel.
Stocarea imaginilor în memorie
Limbajul de programare folosit pentru aplicații cu calcule intensive rămâne încă limbajul C (C++). Stocarea imaginilor se face evident, prin intermediul unor variabile ce implementeză structuri de date bidimensionale. Modul de declarare este cu totul deosebit și anume: declararea static nu este convenabilă din cauza dimensiunilor mari ale imaginilor, deci este necesară o declarare dinamică.
Exemplu de secvență C de declarare a unei imagini:
tip** imagine;
unsignedintcontor;
imagine=(tip**)malloc(nr_linii*sizeof(tip*));
for(contor=0;contor<nr_linii;contor++)
imagine[contor]=(tip*)malloc(nr_coloane*sizeof(tip));
Se poate observa folosirea constantelor nr_linii și nr_coloane și a tipului generic tip pentru valoarea pixelilor. Linia a 3-a alocă spațiul pentru un masiv de pointeri la date de tip pointer; spațiul de memorie necesar (argumentul funcției malloc) este dat de numărul de pointeri la liniile imaginii ce înmulțește dimensiunea unui astfel de pointer (sizeof(tip*)). Valoarea imagine [contor]este adresa de început a spațiului de memorie la care încep valorile pixelilor de pe linia contor; aceștia sunt stocați într-un vector declarat de malloc (nr_coloane*sizeof(tip)). Trebuie observat conversia de tip (cast) obligatorie ce însoțește fiecare alocare de memorie (funcția malloc întoarce un pointer la void). Se remarcă de asemenea că secvența anterioară nu face nici un fel de verificare a succesului operației de alocare de memorie (se verifică valoarea returnată de funcția malloc care nu este NULL). În mod implicit, la compilare, toți pixelii sunt inițializați cu 0.
Spre deosebire de C, limbajul Matlab aduce mair simplificări. Există un singur tip de date, reprezentate pe 8 octeți. Orice variabilă Matlab este creată în momentul folosirii sale în membrul stâng al unei expresii (nu este necesar declararea prealabilă folosirii); orice variabilă este o matrice. Funcțiile returnează matrici. Secvența C anterioară este echivalentă cu urmatoarea secvență Matlab, mult mai simplă:
Exemplu de secvență Matlab pentru declararea unei imagini:
imagine=zeros(nr_linii,nr_coloane);
Stocareaimaginilor în fișiere
Un fișier este entitatea logică de organizare a informației înscrise pe mediile magnetice de stocare și se compune dintr-un șir de octeți. Pentru stocarea imaginii este necesar ca acești octeți să conțină informația aferentă pixelilor precum și informație despre tipul imaginii:
dimensiunile acesteia;
dacă este sau nu indexată;
dacă are sau nu o tabelă de culoare atasată;
dacă este sau nu comprimată sau după ce metodă;
Structurile de fișiere au fost impuse de-a lungul timpului de firmeproducătoare de software sau de organisme de standardizare, căpătând denumirea de formate de imagini. Formatele de imagini s-au făcut cunoscute după extensia standard a fișierelor ce conțin imaginile stocate după formatul respective: BMP, TIF, GIF, PCX, JPG….Se va face referire în mod special la formatele IMG (cunoscute sic a RAW), acest format fiind unul dintre cele mai cunoscute formate de fișiere imagine, și Windows Bitmap-BMP al firmei Microsoft,care este cel mai cunoscut format de fișier.
Un fișier IMG conține imagini indexate cu nivele de gri, de formă pătrată. Fișierul nu conține nici table de culoare și nici antet.
Fișierul BMP conține trei componente consecutive:
un antet de fișier numit și BITMAPFILEHEADER;
o structură de informație a imaginii BITMAPINFO;
codarea pixelilor;
BITMAPFILEHEADERconține informații asupra tipului, dimensiunii și reprezentării fișierului Bitmap independent de dispozitiv (DIB-Device Independent Bitmap); iar semnificațiile componentelor sunt date in tabelul 1.2.
typedefstructtagBITMAPFILEHEADER{ WORD bfType;
DWORD bfType;
WORD bfReserved1; WORD bfReserved2; DW bfOffBits;
}BITMAPFILEHEADER;
BITMAPINFOconține informații asupra dimensiunilor și culorilor unui DIB și este alcătuită din două componente:
antetul structurii de informații numit BITMAPINFOHEADER ,iar componentele sunt descrise in tabelul 1.2
tabelul de culoare format din structuri RGBQUAD, acestea descriu o culoare prin componentele sale de roșu, verde și albastru.
Tabel 1.2:Descrierea câmpurilorstructuriiBITMAPFILEHEADER
Codarea pixelilor se face după câteva reguli:
fiecare pixel va fii codat pe biBitCount biți;
dacă biBitCount este 1, 4, 8, imaginea va fii indexată și fișierul conține tabela de culoare asociată imaginii
codurile pixelilor se grupează pe octeți;
când biBitCount este 24, pentru fiecare pixel se asociază direct trei octeți, aceștia reprezintă componentele de roșu, verde, albastru ale culorii respective; această imagine se numește True Color (culoare adevărată), iar aceasta provine din faptul că numărul total de culori ce se pot reprezenta ( ) care depășește limita sensibilității umane de distingere a culorilor.
CAPITOLUL 2
TEHNICI DE ÎMBUNĂTĂȚIRE A IMAGINILOR
Tehnica de îmbunătățire a imaginii se referă la o clasă largă de operații al căror scop este mărirea detectabilității imaginii. Prin detectabilitate se ințelege faptul că aceasta este legată mai mult de percepția vizuală a unui observator uman decât de o analiză automată cantitativă.
Criteriile de evaluare ale calității imaginii sunt subiective și specifice aplicației. Se poate face și analogia operațiilor de îmbunătățire a imaginilor cu reglajul tonalității muzicii ascultate, și anume în funcție de ascultător, se favorizează componentele înalte,joase sau nici una din ele.
Principiul pe care se bazează îmbunătățirea calității imaginilor este Acela de a nu lua în considerare nici o informație asupra imaginii originale sau asupra procesului de degradare. Deci,din acest punct de vedere se poate lua chiar și o imagine originală pentru a fii îmbunătățită, obținând o imagine falsificată dar subiectiv preferabilă. Facem referire la calitatea subiectivăa unei imagini atunci când aceasta se poate aprecia pe baza contrastului sau accentuării elementelor de contur și pe baza netezimii în regiunile uniforme.
Operația cea mai des întâlnită pentru a îmbunătăți o imagine se numește filtrare, iar aceasta este foarte utilă deoarece are ca scop eliminarea zgomotelor.
Se pot distinge mai multe tipuri de operații de îmbunătățire,acestea fiind:
operații punctuale, se realizează o legatură de tip ” unu la unu ” între vechea valoare a nivelului de gri și noua valoare a acestuia. În această categorie putem include și pseudocolorarea care afișează imaginea folosind o paletă de culoare modificată;
operații locale se referă la faptul că noua valoare a nivelului de gri într-un pixel este obținută din vechea valoare a pixelului respectiv și din valorile unor pixeli vecini pixelului considerat;
operații integrale, noua valoare a unui pixel este dependentă de valorile tuturor pixelilor imaginii;
Prin îmbunătățire, unei imagini nu i se adaugă nimic nou față de ceea ce exista inițial,ci doar este prezentat altfel conținutul inițial al acesteia. Dacă la prima vedere, afirmația este corectă, se poate găsi măcar două obiecții la această formulare:
din punct de vedere al utilizatorului, informația, chiar dacă există, nu poate fi folosită, deci este asimilabil nulă. Imaginile se obțin în condiții extreme de iluminare, ce reprezintă un contrast foarte slab;
din punct de vedere al teoriei informației, informația din imagine poate fi asimilată entropiei procesului aleator ale cărui realizări particulare sunt valorile de gri ale pixelilor. Entropia se modifică însă la orice transformare ce afectează distribuția nivelelor de gri din imagine.
2.1 Operații punctuale de modificare a contrastului
Operațiile punctuale de modificare a contrastului mai sunt numite și transformări ale nivelului de gri sunt asocieri ce leagă nivelul de gri original de noua sa valoare, iar o asemenea asociere nu este altceva decat o funcție:
v = T (u), u ∈ [0; L − 1] (2.1)
Pentru aceasta se stabilesc următoarele condiții:
transformarea T să păstreze intervalul admisibil de valori ale imaginii, când nivelele de gri au fost reprezentate pe L nivele de cuantizare, deci 0 ≤ T (u) ≤ L─1 u [0; L ─ 1]);
transformarea T să fie monotonă ( crescătoare sau descrescătoare) pentru a păstra ordinea între nivelele de gri;
2.1.1 Modificarea liniară a contrastului
O tehnică des folosită pentru modificarea liniară a contrastului este o transformare liniară pe porțiuni dată de:
= (2.2)
În formula de mai sus, parametrii de control sunt , , α și β; aceștia sunt grupați cate doi, definind punctele () și (). Aceste două puncte de control, împreună cu punctele fixe (0,0) si (L─1, L─1) vor defini cele trei segmente de dreaptă ce apar in formula (2.2). Rezultatul aplicării unei asemenea operații punctuale se obține modificând valoarea (nivelul de gri) fiecărui pixel al imaginii inițiale, , conform (2.2), obținând noul nivel de gri . Transformarea poate fi făcută în două moduri:
fie se repetă calculele de la (2.2) pentru fiecare pixel;
fie noile valori ale contrastului se calculează de la început pentru toate nivelele de gri posibile (între 0 și L─1) și apoi aceste modificări se aplică imaginii;
Exemplu de cod C implementat pentru a doua variantă de calcul:
unsignedintT1,T2,alfa,beta,gri_vechi,i,j; gri_nou=(unsignedint*)malloc(L*sizeof(unsignedint)); for(gri_vechi=0;gri_vechi<T1;gri_vechi++)
gri_nou[gri_vechi]=alfa*gri_vechi/T1;
for(gri_vechi=T1;gri_vechi<T2;gri_vechi++)
gri_nou[gri_vechi]=alfa+(beta-alfa)*(gri_vechi-T2)/(T2-T1);
for(gri_vechi=T2;gri_vechi<L;gri_vechi++)
gri_nou[gri_vechi]=beta+(L-1-beta)*(gri_vechi-T1)/(L-1-T2);
for(i=0;i<NRLIN;i++)
for(j=0;j<NRCOL;j++)
imagine_noua[i][j]=gri_nou[imagine_veche[i][j]];
CodulCde maisusimplementează a douavariantă de calcul,careestemultmairapidă, calculelenivelelor de gri au fost separate de ciclul de baleiere al imaginiiși au fost eliminate structurilecondiționaleif impuse de definiția de tip ”acoladă” prinseparareadomeniilor de calculîntreicicluri. Definireanivelului de griunsigned intcreeazăposibilitateafolosiriiunuinumăr de nivele de grimai mare de 256. Dacăar fi fostmaimic de 256 ar fi fostsuficientununsigned char.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Programul Matlab (ID: 150180)
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.
