Uploaded by Lavinia

PROIECT APIB

advertisement
PROIECT DE SEMESTRU LA DISCIPLINA
ANLIZA ȘI PROCESAREA
IMAGINILOR BIOMEDICALE
Studenți:
Grigoraș Carmina
Grigorescu Andreea
Coordonatori: Conf. dr. ing. Simona Vlad
S.l. dr. ing. Angela Lungu
CUPRINS :
1.Introducere..........................................................................................................
1.1.Scopul lucrării
1.2.Generalități
2.Materiale și metode.............................................................................................
2.1.Încărcarea și afișarea imaginii
2.2.Afișarea imaginii după egalizarea histogramei
2.3.Afișarea histogramei ca un grafic de bare
2.4.Afișarea imaginii conținând obiectele care intersectează frontiera imaginii
3.Realizarea interfeței GUIDE........................................................................
4.Concluzii.........................................................................................................
5.Bibliografie.....................................................................................................
1
1. Introducere
1.1.
Scopul lucrării
Scopul lucrării este prezentarea rezultatelor obținute în urma prelucrării unei imagini medicale folosind
pachetul de procesare a imaginilor digitale și pachetul de interfațare grafică-Guide. După introducerea de către
utilizator a unei imagini medicale, cu ajutorul diferitelor funcții se va realiza egalizarea histogramei și afișarea
acesteia ca un grafic de bare.
Introducând cea de-a doua imagine și aplicând funcțiile învățate, se vor determina obiectele care
intersectează frontiera imaginii, precum și markerii care indică poziția acestora în imagine.
1.2.
Generalități
Imaginile fie ca sunt bidimensionale, fie tridimensionale pot fi prelucrate cu scopul de a aduce
imbunatatiri asupra calitatii lor, sau de a obtine diverse modificari in forma si structura.
Prin prelucrare, imaginile pot fi ajustate sau chiar transformate total cu ajutorul unor efecte. Pentru
imaginile realizate intr-un simplu program de grafica sau mai ales pentru fotografii care nu intotdeauna
reprezinta exact ce si-a dorit utilizatorul, s-a facut simtita nevoia producerii unor transformari care sa aduca
produsul mai aproape de realitate sau mai aproape de dorinta fiecaruia. Prelucrarea imaginilor a fost creata pe
de o parte din nevoia de perfectionare a imaginilor si pe de alta parte din dorinta de a crea ceva nou, deosebit.
2
2. Materiale și metode
2.1. Încărcarea și afișarea imaginii
Pentru a încărca și afișa o imagine în Matlab este necesară specificarea căii unde se află imaginea
aleasă, atribuirea unei variabile ce va prelua numele imaginii. Următorul pas a fost acela de a transforma
imaginea în nuanțe de gri pentru a putea implementa funcțiile următoare, iar la final se afișează imaginea cu
ajutorul funcției imshow (f) .
În cadrul acestui proiect s-a ales o imagine de tip .jpg, care reprezintă o radiografie dentară.
Figura 1. Imaginea afișată cu funcția imshow(f)
În interfața interactivă GUIDE, utilizator poate încărca și afișa imaginea accesând butonul
“ÎNCARCĂ”, buton de tip PUSH BUTTON. Pentru punerea în funcțiune a acestui buton, a fost necesară
aplicarea unor modificări în panoul de control, în secțiunile String, respectiv Tag.
Figura 2. Push button
3
Figura 3. Panoul de control
2.2.
Afișarea imaginii după egalizarea histogramei
În procesarea imaginilor digitale, histograma este utilizată pentru reprezentarea grafică a unei imagini
digitale. O histogramă de imagine este un grafic al intensității pixelilor (pe axa x) față de numărul de pixeli (pe
axa y) . Axa x are toate nivelurile de gri disponibile, iar axa y indică numărul de pixeli care au o anumită valoare
a nivelului de gri. Pentru crearea unei histograme de imagine se utilizează funcția imhist, aceasta construind
casete egal distanțate, fiecare reprezentând un interval de valori de date.
Din punct de vedere practic, calculul histogramei unei imagini înseamna parcurgerea punct cu punct a
imaginii și contorizarea numărului de nivele de gri întâlnite. Operațiile de îmbunătățire a imaginilor (pentru
îmbunătățirea percepției vizuale) au ca scop redisttribuirea nivelelor de gri, astfel ca acestea să ocupe întreaga
gamă de variație disponibilă, în mod uniform. În acest sens, se realizează egalizarea de histogramă, care
presupune creșterea intervalului dinamic al imaginii, utilizând funcția histeq.
Figura 4. Egalizarea histogramei
4
2.3.
Afișarea histogramei ca un grafic de bare
Pentru a realiza histograma imaginii s-a utilizat funcția imhist(f), aceasta putând fi supusă unei
proceduri de egalizare pentru a îmbunătăți calitatea imaginii. Pentru o imagine f de M x N pixeli si L nivele de
gri, histograma este definită ca probabilitatea (frecvență relativă) de apariție în imagine a diferitelor nivele de
gri posibile.
Graficele cu bare sunt reprezentarea vizuală a distribuției datelor. Acestea sunt barele dreptunghiulare
care variază de la valorile minime la maxime ale atributelor, după cum este necesar. Există diferite tipuri de
grafice cu bare în Matlab, cum ar fi graficul cu bare 2D, orizontal, vertical și diferite caracteristici sunt asociate
cu acestea. Caracteristici precum lățimea, culoarea, axele pot fi ajustate folosind graficul cu bare. Graficele cu
bare sunt folosite în diverse platforme precum Matlab, R, Python pentru a analiza datele și a ajunge la o
concluzie. Funcția bară distribuie barele de-a lungul axei x. Elementele din același rând al unei matrice sunt
grupate împreună. Când axa înălțimii este pe axa y, atunci este un grafic cu bare vertical și când axa înălțime
este pe axa x, atunci este un grafic cu bare orizontal.
Figura 5. Afișarea histogramei ca un grafic de bare
5
Figura 6. Histograma originala si histograma egalizata
2.4.
Afișarea imaginii conținând obiectele care intersectează frontiera imaginii
Pentru afisarea imaginii continand obiectele care intersecteaza frontiera imaginii am folosit functia
„Imreconstruct’’.
Imreconstruct realizează reconstrucția morfologică a markerului de imagine sub masca de imagine și
returnează reconstrucția în J. Elementele markerului trebuie să fie mai mici sau egale cu elementele
corespunzătoare ale măștii. Dacă valorile din marker sunt mai mari decât elementele corespunzătoare din
mască, atunci imreconstruct clipește valorile la nivelul măștii înainte de a începe procedura.
Pașii pe care i-am parcurs în aplicarea funcției imreconstruct sunt urmatorii:



Am citit si am afisat imaginea in tonuri de gri.
Am creat o imagine marker care identifica obiectele care intersecteaza frontiera imaginii, pe care leam extras prin segmentare si am afisat rezultatele.
Au fost afisate urmatoarele imagini: imaginea originala in tonuri de gri, imaginea cu markerii care
indica locul in care se aflau obiectele care intersecteaza frontiera imaginii, imaginea cu obiectele care
intersecteaza frontiera imaginii si imaginea cu obiectele ramase dupa ce au fost sterse cele care
intersecteaza frontiera imaginii.
Figura 6. Imaginea în tonuri de gri și cea originală
6
Figura 7. Afișarea markerilor
Figura 8. Afișarea obiectelor care intersectează frontiera imaginii
7
3. Realizarea interfeței GUIDE
Guide este un set de instrumente concepute pentru a face construirea interfețelor grafice mai ușoară și
mai rapidă. Odată ce butoanele și diagramele sunt pozitionate, Editorul Guide Callback permite configurarea
codului Matlab care este executat atunci când este apăsat un anumit buton.
Guide este un mediu de dezvoltare care oferă un set de instrumente pentru crearea de interfețe cu
utilizatorul. Aceste instrumente simplifică procesul de aranjare și programare a interfețelor de utilizare.
Folosind Editorul Guide, se poate popula o interfață de utilizare făcând clic și trăgând componente ale interfeței
de utilizare, cum ar fi axe, panouri, butoane, câmpuri de text în zona de aspect. De asemenea, se pot crea
meniuri și meniuri contextuale pentru interfața de utilizare. Din Editorul de aspect, se poate dimensiona
interfața de utilizare, este permisa modificarea aspectului și aspectul componentelor, se pot alinia
componentele, vizualiza o listă ierarhică a obiectelor componente și se permite setarea opțiunilor pentru
interfața de utilizare.
Interfata Guide realizată este formată din mai multe componente cărora le-au fost atribuite funcții
specifice cerințelor impuse: axele de coordonate unde se vor afișa imaginea prelucrată si imaginea originala,
un push button prin care utilizatorul va putea selecta o imagine medicală pe care dorește să o introducă pentru
a fi prelucrată. Aplicarea funcției [nume_im cale_im]=uigetfile() ofera utilizatorului posibilitatea de a alege
imagini diferite din domeniul medical.
Am utilizat doua de tip radio button, „Original” care afiseaza imaginea neprelucrata si „Modificat” care
afiseaza Egalizarea Histogramei pentru prima imagine, respectiv Modificarea imaginii originale in nuante de
gri pentru cea de-a doua imagine.
Am introdus un meniu tip pop-up cu trei elemente („Egalizare H” care ilustreaza histograma egalizata,
„Grafic B” care afiseaza histograma ca un grafic de bare si „Frontiera” care prezinta obiectele care intersecteaza
frontiera celei de a doua imagine) de unde se va putea alege procesul care se dorește a fi aplicat pe imaginea
aleasă.
Am folosit un buton de tip push button pe care l-am denumit „Markeri” si afiseaza markerii care indica
locul unde se afla in imaginea originala obiectele care intersecteaza frontiera imaginii.
Ultimul element al aplicației GUIDE este un push button a cărui funcție este salvarea imaginii
prelucrate de utilizator.
8
Scopul final al realizării interfetei Guide este acela de a facilita interacțiunea unui utilizator
neexperimentat cu funcțiile de prelucrare specifice Matlab. Acesta se poate folosi de toate funcțiile integrate
fară a fi nevoie să cunoască algoritmii de funcționare, utilizand doar interfața intuitivă a aplicației realizate.
Prin acesta el poate modifica imaginea introdusă până când se consideră că cerințele de prelucrare sunt
indeplinite.
4. Concluzii
In cadrul acestei lucrari am prezentat rezultatele obtinute in urma prelucrarii unor imagini medicale,
prin intermediul unei interfete grafice interactive, utilizand pachetul Guide. Acesta a creat o interfata usor de
folosit pentru utilizator si a ilustrat toate functiile folosite si rezultatele obtinute in urma aplicarii acestora.
Guide extinde suportul Matlab pentru codificare rapidă în domeniul construcției de interfețe grafice.
Am parcurs pasii necesari pentru a obtine egalizarea histogramei unei imagini introduse de catre
utilizator, afisarea acesteia ca un grafic de bare si determinarea obiectelor care intersecteaza frontiera imaginii,
precum si a markeri-lor care indica pozitia acestora.
Prima imaginea rezultata in urma functiilor aplicate prezinta histograma egalizata. Urmatorul pas a fost
acela de a afisa histograma ca un grafic de bare. Graficele cu bare sunt utile pentru vizualizarea rezultatelor pe
o perioadă de timp, pentru compararea rezultatelor din diferite seturi de date și pentru a arăta modul în care
elementele individuale contribuie la o cantitate agregată. În mod implicit, graficele cu bare reprezintă fiecare
element dintr-un vector sau o matrice ca o bară, astfel încât înălțimea barei este proporțională cu valoarea
elementului.
Cea de-a doua imagine introdusa de catre utilizator ilustreaza o grupare de celule. Dupa transformarea
in nuante de gri, am determinat obiectele care intersecteaza frontiera imaginii, le-am afisat si am aflat pozitia
acestora prin intermediul markeri-lor. Functia utilizata la acest pas a fost “Imreconstruct”. Imreconstruct
realizează reconstrucția morfologică a marker-ului imaginii de sub masca imaginii. Imaginea returnată IM este
o imagine binară. Marker-ul trebuie să aibă aceeași dimensiune cu masca, iar elementele sale trebuie să fie mai
mici sau egale cu elementele corespunzătoare din masca.
La cerințele minime ale proiectului am adăugat următoarele funcții pentru îmbunătățirea aplicației:
-am permis utilizatorului să introducă orice imagine din memoria calculatorului
-am adăugat butonul de tip ”Radio Button” – Original, care afișează imaginea originală încărcată de utilizator,
după realizarea anumitor operațiuni
- am adăugat butonul de tip ”Push Button” – Markeri, care afișează markerii ce indică poziția obiectelor care
intersectează frontiera imaginii ”Celule”.
9
5. Bibliografie






Curs Analiza si procesarea imaginilor biomedicale
https://profs.info.uaic.ro/~fliacob/An2/20122013/Resurse/Relative%20la%20Matlab/Elemente%20de%20Matlab.pdf
http://www.viaclab.utcluj.ro/Matlab_Curs_12_2020_Lupea.pdf
http://www.apmath.spbu.ru/ru/staff/smirnovmn/files/buildgui.pdf
https://courses.cit.cornell.edu/bionb442/GUIdesign/BUILDGUI.PDF
http://alpha.imag.pub.ro/site_old/release/archive/carte_pai.pdf
10
Download