Documente Academic
Documente Profesional
Documente Cultură
Laborator NR - 8 - Prelucrarea Imaginilor Medicale - Imagej PDF
Laborator NR - 8 - Prelucrarea Imaginilor Medicale - Imagej PDF
De ce să modificăm o imagine?
Procesul de achiziţie al imaginilor este laborios. Există sute, până la milioane de senzori optici care transformă
lumina în curent electric şi apoi în biţi. Toate aceste procese, pe lângă caracteristicele senzorului (uneori precare) şi
erori ce nu ţin de achiziţia propriu-zisă, cum ar fi optica aparatului, duc la deformarea imaginilor şi mai mult, la
adăugarea de zgomot. Prin modificările pe care le facem asupra unei imagini acoperim, pe cât se poate, aceste
neajunsuri, imaginea rezultată fiind gata pentru prelucrări ulterioare.
Interfaţa utilizator
Lansarea programului in executie se realizeaza prin comanda: Start -> Programs -> ImageJ -> ImageJ.
2
Apare urmatoarea fereastră de dialog:
Spre deosebire de majoritatea programelor de procesare de imagini, ImageJ nu are propriu-zis o zonă de lucru
principală. Fereastra principală conţine doar meniul cuprinzând totalitatea comenzilor şi câteva toolbar-uri. Toate
imaginile deschise cu ImageJ sunt afişate in ferestre separate, la fel şi histogramele, meniurile adiţionale de tip pop-up
sau ferestrele de configurare. Rezultatele măsurătorilor efectuate asupra unei imagini sunt afişate în Tabelul
Rezultatelor. Majoritatea ferestrelor adiţionale pot fi redimensionate şi mutate în diverse locuri pe ecran.
1 Selecţie rectangulara (cu sau fără colturi rotunjite) (click 7 Selecţie tip punct sau multi-punct Tool
dreapta pentru a defini tipul selecţiei) 8 Bagheta magica
2 Selecţie ovala, eliptica sau de tip brush (click dreapta 9 Text
pentru a defini tipul selecţiei) 10 Lupa (se pot folosi şi tastele „+” şi „-”)
3 Selecţie tip poligon 11 Scroll
4 Selecţie liberă 12 Selecţie culoare
5 Linie dreapta, segmentata, segment oarecare sau săgeţi A–H Macro-uri (se încarcă din StartupMacros.txt,
(click dreapta pentru a defini tipul selecţiei) macros/tools/ or macros/toolsets/
6 Unghi 13 Alege alt macro sau adaugă un plugin
1. Comanda de deschidere a imaginilor incluse in setul 2. Se deschide setul corespunzător de imagini într-o noua
demo al programului: File -> Open Samples. Se alege fereastră. În partea de sus a acesteia se pot observa:
<<Bat Cochlea Renderings>>. numărul imaginii curente şi numărul total de imagini din
set, rezoluția, tipul şi dimensiunea imaginii curente.
Schimbarea imaginii curente se realizează folosind bara de
derulare (scroll) din partea de jos a ferestrei.
3
3. Numărul imaginii curente este afişat în permanenţă în 4. Numărul imaginii curente este afişat în permanenţă în
colţul din stânga sus al ferestrei. colţul din stânga sus al ferestrei.
Deschiderea unei imagini alese de utilizator se realizează utilizând comanda: File -> Open.
Ca rezultat, o nouă fereastră adiţională se va deschide şi va afişata imaginea dorită.
1. Comanda de deschidere a imaginilor alese de 2. Apare o fereastră de dialog din care se poate selecta
utilizator: File -> Open. imaginea dorită. Ulterior, se apasă butonul Open.
4
Acest lucru se realizează astfel: Image -> Type -> 32-bit.
1. Comanda de convertire a unei imagini în tonuri de 2. Imaginea rezultată în urma trecerii la tonuri de gri.
gri: Image -> Type -> 32-bit.
5
3. Modificaţi valorile prin acţiunea asupra elementelor 4. Observaţi diferenţele dintre imaginea obţinută în
de derulare (scroll). Raportul dintre contrast şi urma prelucrării şi imaginea originală.
luminozitate este reflectat mereu în graficul evidenţiat
mai jos. La final, se apasă butonul Apply.
Filtrarea imaginilor
Unele imagini sunt zgomotoase. Imaginile numerice sunt susceptibile la diverse tipuri de zgomot. Zgomotul
este rezultatul erorilor în achiziţia iniţială a imaginii, al căror rezultat sunt valori ale pixelilor care nu reflectă
intensitatea din imaginea adevărată. Zgomotul poate apărea în imagine în mai multe feluri depinzând de cum este creată
imaginea. Dacă imaginea este scanată dintr-o fotografie, granulaţia filmului sau hârtiei fotografice este o sursă de
zgomot. Dacă imaginea este achiziţionată direct, de exemplu cu un aparat foto digital, mecanismul de achiziţie
(senzorul CCD) poate introduce zgomot în imagine. Transmisia electronică a imaginii poate ea însăşi să introducă
zgomot. Reducerea zgomotului sau favorizarea unor anumite componente ale imaginii se fac prin operaţia de filtrare.
Filtrarea este o tehnică de modificare sau îmbunătăţire a imaginii, pentru a favoriza anumite componente sau pentru a
elimina alte componente.
Zgomotul unei imagini este redus prin înlocuirea valorii fiecărui pixel cu mediana valorilor pixelilor învecinaţi
(se consideră o vecinătate circulară, identificată prin rază). În cazul unui set de date, mediana reprezintă valoarea
numerică ce separă întregul set în două jumătăţi: inferioară (valori < valoarea mediană) şi superioară (valori > valoarea
mediană). Mediana unui set finit de date poate fi obţinută ordonând crescător elementele din set şi alegându-l pe cel de
la mijloc. Dacă setul conţine un număr impar de elemente, atunci există o unică valoare de mijloc. Dacă setul conţine un
număr par, atunci valoarea mediană reprezintă media aritmetică a celor două elemente de la mijloc.
Filtrarea prin determinarea medianei este totodată o tehnică de netezire a imaginii (aşa cum este, de exemplu,
filtrarea liniară Gaussiană). Toate tehnicile de netezire a imaginilor sunt eficiente în ceea ce priveşte eliminarea
zgomotului, dar prezintă dezavantajul de a afecta contururile obiectelor incluse în acea imagine. Contururile sunt
elemente critice în cadrul unei imagini, astfel că este foarte important să eliminăm zgomotul şi să le păstrăm pe cât
posibil neafectate. Pentru un nivel moderat de zgomot, mediana reprezintă modalitatea ideală de a înlătura zgomotul,
conservând contururile, de aceea este o tehnică des utilizată în procesarea imaginilor.
Filtrarea unei imagini se realizează astfel: Process -> Filters -> Median.
6
1. Se deschide o imagine care prezintă zgomot 2. Comanda de filtrare a unei imagini: Process ->
(observaţi aspectul acesteia). Filters -> Median.
3. Apare o fereastră de dialog în care se solicită 4. Observaţi diferenţele dintre imaginea obţinută în
introducerea razei vecinătăţii pixelilor care intră în urma prelucrării şi imaginea originală.
calculul medianei. Dacă check-box-ul <<Preview>>
este bifat, atunci orice modificare a razei este vizibilă în
timp real în imaginea deschisă. La final, se apasă
butonul OK.
Operaţii morfologice
Procesarea morfologică a imaginii este o tehnică utilizată pentru extragerea sau modificarea informaţiei
referitoare la forma şi structura obiectelor dintr-o imagine. Operatorii morfologici, cum ar fi dilatarea sau eroziunea,
sunt utili în particular pentru analiza imaginilor binare, deşi utilizarea lor poate fi extinsă şi pentru analiza imaginilor în
tonuri de gri sau color. În cadrul operaţiei de eroziune, fiecare pixel al obiectului care atinge un pixel al fundalului se
schimbă într-un pixel din fundal. În cadrul operaţiei de dilatare, fiecare pixel din fundal care atinge un pixel dintr-un
obiect este schimbat într-un pixel din obiect. Graniţa aceasta este stabilită cu ajutorul pixelilor învecinaţi (se consideră o
vecinătate circulară, identificată prin rază).
Aplicarea operatorului morfologic eroziune se realizează astfel: Process -> Filters -> Minimum.
7
1. Se deschide o imagine (observaţi aspectul acesteia). 2. Comanda de filtrare a unei imagini: Process ->
Filters -> Minimum.
3. Apare o fereastră de dialog în care se solicită 4. Observaţi diferenţele dintre imaginea obţinută în
introducerea razei vecinătăţii pixelilor care intră în urma prelucrării şi imaginea originală.
calculul operaţiei morfologice. Dacă check-box-ul
<<Preview>> este bifat, atunci orice modificare a razei
este vizibilă în timp real în imaginea deschisă. La final,
se apasă butonul OK.
Acest filtru aplică operatorul morfologic de eroziune prin înlocuirea valorii fiecărui pixel din imagine cu cea
mai mică valoare a pixelilor învecinaţi.
Aplicarea operatorului morfologic dilatare se realizează astfel: Process -> Filters -> Maximum.
8
1. Se deschide o imagine (observaţi aspectul acesteia). 2. Comanda de filtrare a unei imagini: Process -> Filters
-> Maximum.
3. Apare o fereastră de dialog în care se solicită introducerea 4. Observaţi diferenţele dintre imaginea obţinută în urma
razei vecinătăţii pixelilor care intră în calculul operaţiei prelucrării şi imaginea originală.
morfologice. Dacă check-box-ul <<Preview>> este bifat,
atunci orice modificare a razei este vizibilă în timp real în
imaginea deschisă. La final, se apasă butonul OK.
Acest filtru aplică operatorul morfologic de dilatare prin înlocuirea valorii fiecărui pixel din imagine cu cea
mai mare valoare a pixelilor învecinaţi.
Cei doi operatori morfologici se pot combina în ordinea dilatare-erodare şi rezultă închiderea morfologică şi
erodare-dilatare şi rezultă deschiderea morfologică. Pe baza deschiderii şi închiderii morfologice se definesc şi alte
operaţii necesare în prelucrarea imaginilor.
Operaţiile prezentate anterior pot fi aplicate direct şi din meniul Binary, dar se pot folosi numai în cazul
imaginilor 8-bit:
9
1. Deschideţi o imagine în tonuri de gri, codificată 32- 2. Deoarece comanda a fost lansată pentru o imagine în
bit. Comanda de lansare directă a operaţiei de dilatare a tonuri de gri 32-bit, apare o fereastră de dialog prin care
acesteia este: Process -> Binary -> Dilate. utilizatorul este notificat de faptul că operaţia solicitată
necesită o imagine codificată 8-bit, fie în tonuri de gri, fie
color.
Conturul (perimetrul) unui obiect este definit ca ansamblul pixelilor obiectului respectiv care au cel puţin un
vecin in afara obiectului.
Segmentarea imaginilor prin această metodă constă în localizarea pixelilor care corespund contururilor
obiectelor prezente în acea imagine. Ulterior, se presupune că numărul obiectelor prezente este egal cu numărul
contururilor dintr-o imagine, în condiţiile în care un contur al unei zone sau al unei imagini este automat un contur
închis. Pentru precizia segmentării, în cazul determinării unui obiect, perimetrul conturului detectat trebuie să fie
aproximativ egal cu cel al obiectului din imaginea iniţială. Dificultatea metodei apare însă odată cu necesitatea de a
defini un contur într-o imagine. Un contur sau o caracteristică liniară reprezintă o schimbare bruscă sau o
discontinuitate a pixelilor pe o anumită direcţie din imagine.
10
1. Comanda de determinare a contururilor unei imagini: 2. Observaţi diferenţele dintre imaginea obţinută în
Process -> Find Edges. urma prelucrării şi imaginea originală. Toate contururile
dintre obiectele prezente în imagine au fost evidenţiate.
Detecţia contururilor oferă rezultate mai bune în cazul imaginilor alb negru. Pentru acest lucru, se realizează
iniţial binarizarea imaginii (conversia într-o imagine alb-negru) şi ulterior detecţia contururilor.
1. Comanda de binarizare a unei imagini: Process -> 2. Observaţi diferenţele dintre imaginea obţinută în
Binary -> Make Binary. urma prelucrării şi imaginea originală. Imaginea
prezintă acum doar obiecte identificate cu negru.
11
Măsurători
ImageJ permite realizarea unui set de măsurători statistice ale unei imagini. În funcţie de selecţia efectuată,
aplicaţia calculează şi afişează într-un tabel rezultate legate de calcule statistice ale ariei, ale lungimii liniilor şi
unghiurilor, sau ale coordonatelor. Măsurătorile efectuate pot fi selectate din fereastra de dialog <<Set measurements>>
(Analyze -> Set Measurements).
1. Pentru selectarea măsurătorilor ce vor fi efectuate, se 2. Apare o fereastră de dialog în care se pot bifa o serie de
lansează comanda: Analyze -> Set Measurements. măsurători dorite. La final, se apasă butonul OK.
Area – aria selecţiei exprimată în pixeli2 sau în unităţi de măsură2 (mm2, μm2 etc.)
Mean gray value – valoarea medie a nivelurilor de gri din aria selectată. Aceasta reprezintă suma tuturor nivelurilor de
gri din aria selectată, împărţită la numărul de pixeli. Pentru imagini RGB, media este calculată prin conversia fiecărui
pixel în nivel de gri, folosind formula gri = (roşu + verde + albastru)/3.
Standard deviation – deviaţia standard a tonurilor de gri folosite pentru a calcula valoarea medie menţionată anterior.
Modal gray value – tonul de gri cel mai întâlnit în aria selectată. Corespunde vârfului histogramei.
Min & max gray level – nivelurile minim şi maxim ale tonurilor de gri din aria selectată.
Centroid – punctul central al ariei selectate. Este calculat ca fiind media coordonatelor x şi y ale tuturor pixelilor din
aria selectată.
Center of mass – media luminozităţii tuturor pixelilor din aria selectată.
Perimeter – lungimea marginii exterioare a selecţiei. Perimetrul unei selecţii compuse este calculat prin descompunerea
selecţiei în arii individuale. (Notă: perimetrul unei selecţii compuse poate să difere de suma perimetrelor individuale,
datoritămetode de calcul diferite.)
Bounding rectangle – reprezintă cel mai mic dreptunghi care încadrează aria selectată.
Fit ellipse – reprezintă elipsa care încadrează aria selectată.
Shape descriptors – calculează şi afişează următorii descriptori de formă:
Circularity: 4π * Arie / Perimetru2 - valoarea 1.0 indică un cerc. Pe măsură ce valoarea se apropie de 0, indică
o formă alungită.
Aspect ratio: menţinerea proporţiilor elipsei care încadrează aria selectată.
Roundness: inversul parametrului Aspect Ratio.
Solidity: Arie / Arie convexă.
Feret’s diameter: cea mai mare distanţă dintre oricare două puncte de pe conturul ariei selectate.
Integrated density – Suma valorilor pixelilor din aria selectată. Este echivalentul produsului dintre Arie şi Valoarea
medie a nivelurilor de gri.
Median – valoarea mediană a pixelilor din aria selectată.
Skewness – momentul de ordin trei al mediei.
Kurtosis – momentul de ordin patru al mediei.
Area fraction – pentru imaginile care au valori de prag definite, reprezintă procentul pixelilor din aria selectată care au
fost marcaţi cu roşu; pentru celelalte imagini, reprezintă procentul pixelilor cu valori diferite de zero.
Stack position – reprezintă poziţia în cadrul stivei de imagini.
Ulterior, pentru o anumită imagine, se pot determina valorile măsurătorilor selectate anterior.
12
1. Comanda de determinare a valorilor măsurătorilor 2. Apare ulterior o fereastră de dialog în care sunt afişate,
pentru o imagine: Analyze -> Measure. sub formă tabelară, valorile măsurătorilor selectate.
În cazul în care nu există o arie selectată, la comanda Analyse -> Measure se calculează valorile măsurătorilor
selectate pentru întreaga imagine. Dacă înainte de lansarea comenzii se selectează o anumită arie, atunci măsurătorile se
vor aplica doar acelei arii selectate.
1. Se selectează o anumită arie din imagine. 2. Se afişează valorile măsurate (prin comanda Analyze ->
Measure). Acestea sunt valabile doar pentru porţiunea
selectată.
Exemple de utilizare
1. În cadrul patologiei ginecologice, screening-ul citologiei colului uterin este de mare importanţă pentru
detectarea precoce a modificărilor potenţial maligne de la acest nivel. Celulele epiteliale se nasc din celulele bazale,
apoi se maturează încet spre parbazale, intermediare şi în final devin celule superficiale (exfoliative). Diferenţierea între
13
aceste celule, pe lângă intensitatea culorii, se face în funcţie de raportul nucleu citoplasmă. În imaginea de mai jos sunt
prezente câteva celule, în partea din stânga fiind celule superficiale cu nucleu mic picnotic, iar în partea din dreapta
celule intermediare cu nucleul mare şi citoplasma mai redusă. Folosindu-ne de modificarea contrastului şi de setarea
unui threshold oportun, se pot selecta iniţial nucleii, apoi nucleii şi citoplasma, astfel încât putem calcula raportul
nucleu-citoplasma pentru cele 2 tipuri de celule.
3. Se alege modul de selecţie Linie şi se trasează diametrul 4. Se afişează valoarea măsurătorii selectate (Arie) şi se
unui nucleu. În timpul desenării, apar în timp real unghiul obţine lungimea liniei trasate.
şi lungimea liniei de selecţie.
14
2. Atunci când nu este disponibilă unitatea de măsura pentru poze (nu avem calibrarea), se poate realiza o
calibrare aproximativă a unei imagini, măsurând elemente cărora le ştim dimensiunea. Astfel, ştim deja ca diametrul
mediu al unei hematii este de aproximativ 7 microni. Măsurând diametrul a 10-15 hematii, putem astfel face o calibrare
aproximativă. Împărţim 7 microni (dimensiunea normală a unei hematii) la media dimensiunii hematiilor măsurate.
Aflam astfel câţi microni are un pixel din imagine. Totuşi, având în vedere că există modificări patologice ale
dimensiunii hematiilor - ca în anemii - calibrarea poate avea mult de suferit. În unele cazuri, din păcate este tot ce avem.
Analiza particulelor
Comanda Analyze -> Analyze particles - numără şi măsoară obiectele din cadrul unei imagini binare (sau care
are definite valori de prag Image -> Adjust -> Threshold). Analiza este realizată asupra ariei selectate sau asupra
întregii imagini, în cazul lipsei selecţiei. Etapele sunt următoarele: se scanează selecţia (sau imaginea) până când se
întâlneşte marginea unui obiect; se evidenţiază conturul acelui obiect folosind Bagheta Magică şi se efectuează
măsurătorile selectate; se umple acel obiect pentru a nu îl mai scana a doua oară şi se continuă scanarea în căutarea unui
nou obiect, până la atingerea marginii selecţiei (sau imaginii). Acestea se realizează intern, fiind transparente pentru
utilizaror.
Pentru a testa această opţiune a programului ImageJ, se parcurg paşii următori:
- se binarizează imaginea
- se aleg următoarele măsurători: Standard Deviation, Min & max gray value; Perimeter (vezi imaginea de mai sus)
- se selectează o zonă restrânsă
- se calculează măsurătorile
1. Comanda de binarizare a unei imagini: Process -> 2. Se alege modul de selecţie rectangular.
Binary -> Make Binary.
15
5. Apare o fereastră de dialog care prezintă parametrii 6. După apăsarea butonului OK apare o fereastră de
de analiză. Se aleg opţiunile dorite (nu uitaţi să bifaţi dialog care prezintă rezultatul analizei.
opţiunea <Display results> pentru afişarea rezultatelor)
şi la final se apasă butonul OK.
Scheletizarea este reprezentată de reducerea obiectelor la linii, fără a schimba radical structura imaginii.
Se aplică doar imaginilor binare astfel: Process -> Binary -> Scheletonize.
3. Comanda de scheletizare a unei imagini binare: 4. Observaţi diferenţele dintre imaginea obţinută în
Process -> Binary -> Scheletonize urma prelucrării şi imaginea binară.
16
Afişarea histogramei unei imagini
Histograma unei imagini reprezintă distribuţia nivelurilor de gri în cazul imaginilor în tonuri de gri, sau a
nivelurilor celor trei canale în cazul imaginilor RGB, în cadrul imaginii. Pentru o imagine pe 8 biţi, histograma va afişa
numărul de pixeli pentru fiecare valoare de culoare posibilă (256 valori). Utilitatea histogramei este evidentă în
prelucrarea imaginilor capturate direct în format digital. Evaluarea unei imagini cu ajutorul histogramei permite o
apreciere rapidă a paşilor necesari pentru a îmbunătăţi calitatea imaginii.
Comanda Analyze -> Histogram determină afişarea histogramei unei imagini.
1. Comanda de afişare a histogramei unei imagini: 2. Ulterior, apare o fereastră de dialog cu opţiuni
Analyze -> Histogram. referitoare la caracteristicile histogramei. După setările
dorite, se apasă butonul OK.
O prelucrare clasică a imaginilor digitale o reprezintă îmbunătăţirea contrastului prin egalizarea histogramei.
Acest lucru se realizează astfel:
17
1. Comanda pentru îmbunătăţirea contrastului: Process 2. Apare o fereastră de dialog în care se bifează
-> Enhance Contrast. opţiunea <<Equalize histogram>>. La final, se apasă
butonul OK.
3. După apăsarea butonului OK, contrastul imaginii 4. Afişaţi din nou histograma imaginii (Analyze ->
originale este modificat. Observaţi diferenţele dintre Histogram) şi observaţi diferenţele dintre aceasta şi
imaginea obţinută în urma prelucrării şi imaginea histograma imaginii originale (afişată la punctul
originală. anterior).
BIBLIOGRAFIE
TĂRÂŢĂ MIHAI (2010), Informatică medicală, SITECH, Craiova ISBN 978-606-530-816-9, vol. I şi II, 568 pagini,
Cap. Analiza si prelucrarea imaginilor medicale
18