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