Turinys:

Smegenų naviko MRT aptikimas naudojant „Matlab“: 6 žingsniai
Smegenų naviko MRT aptikimas naudojant „Matlab“: 6 žingsniai

Video: Smegenų naviko MRT aptikimas naudojant „Matlab“: 6 žingsniai

Video: Smegenų naviko MRT aptikimas naudojant „Matlab“: 6 žingsniai
Video: Eliminating brain cancer at its source | Natalie Artzi | TEDxMIT 2024, Lapkritis
Anonim
Smegenų naviko MRT aptikimas naudojant „Matlab“
Smegenų naviko MRT aptikimas naudojant „Matlab“

Autoriai: Madhumita Kannan, Henry Nguyen, Ashley Urrutia Avila, Mei Jin

Šis MATLAB kodas yra programa, skirta aptikti tikslų naviko dydį, formą ir vietą, rastą paciento smegenų MRT. Ši programa skirta iš pradžių dirbti su navikų aptikimu smegenų MRT tyrimuose, tačiau ji taip pat gali būti naudojama vėžio diagnostikai atliekant kitus organų tyrimus.

Toliau pateiktose instrukcijose pirmiausia bus aprašyti vaizdo analizės metodai, filtruojant ir išvalydami MRT nuskaitymą, dvejetainiu būdu, vidutiniškai filtruojant ir stumdant langus. Tada jis nurodys, kaip izoliuoti naviką, naudojant iš anksto sukurtą elipsinę kaukę, ir toliau jį filtruojant, kad būtų apibrėžtas naviko formos perimetras.

Aptikus naviką, instrukcijose toliau bus aprašyta, kaip šią programą įtraukti į grafinę vartotojo sąsają (GUI). Visose šiose instrukcijose bus pridėtas atitinkamas kodas ir failai, kurie padės paaiškinti, kaip veikia ši MRT nuskaitymo analizė.

Prieš tęsdami šią instrukciją, turite žinoti, atsisiųsti ir paruošti keletą dalykų: 1. Įsitikinkite, kad atsisiųsta naujausia MATLAB versija. R2018b galite įdiegti čia:

2. Norėdami paleisti šią programą, turite turėti prieigą prie MRT smegenų nuskaitymo failų. Nors kai kuriuos visada galima rasti iš „Google“vaizdų, nuodugni ir tiksli analizė gali būti atlikta iš tinkamų kiekvieno paciento smegenų nuskaitymo sluoksnių vaizdų. Šioje duomenų bazėje galite pasiekti 20 skirtingų pacientų, sergančių glioblastoma prieš ir po gydymo, failus:

3. Šios programos dėmesys ir įvairūs metodai, kuriais vadovaujamasi įgyvendinant šį projektą, aprašyti šiame tyrime:

1 veiksmas: inicijuokite grafinę vartotojo sąsają (GUI)

Inicijuoti grafinę vartotojo sąsają (GUI)
Inicijuoti grafinę vartotojo sąsają (GUI)
Inicijuoti grafinę vartotojo sąsają (GUI)
Inicijuoti grafinę vartotojo sąsają (GUI)

Pirmasis žingsnis būtų sukurti ir inicijuoti grafinę vartotojo sąsają, GUI. Tai galima padaryti įvedus vadovą į komandų langą, paspaudus „Enter“ir sukūrus naują GUI. Baigę šį veiksmą, galite pradėti kurti tokias funkcijas kaip ašys, statinis tekstas, teksto redagavimas ir mygtukai, kurie bus rodomi, kai programa bus paleista ir vartotojas galės su ja bendrauti. Šios funkcijos gali būti redaguojamos ir manipuliuojamos per nuosavybės inspektorių, tačiau svarbiausia funkcija, kurią reikia pakeisti kuriant šias funkcijas, yra žymos pavadinimas. Svarbu pakeisti kiekvienos įdiegtos funkcijos žymos pavadinimą, nes tai leis mums sukurti išskirtinę atšaukimo funkciją. Kai būsite patenkinti savo GUI išdėstymu, galėsite pereiti prie DICOM failų, kurie bus rodomi GUI, įkėlimo.

2 veiksmas: MRT vaizdų įkėlimas ir skaitymas MATLAB

MRT vaizdų įkėlimas ir skaitymas MATLAB
MRT vaizdų įkėlimas ir skaitymas MATLAB
MRT vaizdų įkėlimas ir skaitymas MATLAB
MRT vaizdų įkėlimas ir skaitymas MATLAB

Norėdami įkelti DICOM failus, turite tinkamai inicijuoti atgalinio skambučio funkciją, kuri būtų vykdoma paspaudus mygtuką „Įkelti MRT vaizdą“. Kai tai bus padaryta, turite sukurti visuotinį kintamąjį, kuris rodytų vaizdą ant rankenų ašių, kuriose norite, kad būtų rodomas originalus MRT vaizdas. Iš duomenų bazės atsisiunčiami MRT nuskaitymo vaizdai yra visi DICOM formato failai, kuriuos reikia įkelti į jūsų MATLAB katalogą. Suraskite failą naudodami „imgetfile“, kad galėtumėte juos įkelti į programą. Vaizdai skaitomi naudojant įmontuotą MATLAB funkciją „dicomread“, o pirmasis neapdorotas kiekvieno failo vaizdas yra įterptas į kairę GUI ašį naudojant „imshow“.

Integruota MATLAB funkcija „dicominfo“taip pat yra labai naudinga sprendžiant visą kiekvieno MRT dicom failo informaciją. Mes panaudojome šią funkciją, kad išgautume visą aprašomąją informaciją apie pacientus, pvz., Jų lytį, amžių, svorį ir ūgį. Ši funkcija taip pat suteikia jums krūvos tvarką, kuri yra naudinga įgyvendinant programą grafinėje vartotojo sąsajoje. Mes sukūrėme kintamuosius kiekvienai aprašomąjai pacientų informacijai, kuri bus naudojama GUI, kai bus paspaustas aptikimo mygtukas.

3 žingsnis: vaizdo filtravimas

Vaizdo filtravimas
Vaizdo filtravimas
Vaizdo filtravimas
Vaizdo filtravimas

Įkėlus ir perskaičius neapdoroto vaizdo DICOM failą, vaizdas turi būti paverstas iš pilkos spalvos į dvejetainę formą, susidedančią tik iš juodų ir baltų pikselių. Mes panaudojome funkciją „imbinarize“, kad sukurtume dvejetainį vaizdą iš neapdoroto vaizdo. kontroliuoti adaptyvaus slenksčio nustatymo aspektus esant 0,59 jautrumo vertei. Numatytasis slenksčio jautrumo koeficientas 0,5 buvo mažas ir negalėjo aptikti ryškesnių dėmių ir dėmių iš vaizdo, todėl padidinome jį iki 0,59.

Tada dvejetainis vaizdas apdorojamas per vidurinį filtrą, naudojant funkciją „medfilt2“, nes dvejetainis vaizdas yra dvimatis. Mes nustatėme, kad kiekvienas išvesties pikselis turėtų vidutinę reikšmę 5 x 5 kaimynystėje aplink atitinkamą įvesties dvejetainio vaizdo pikselį. Tai sumažina triukšmą ir išsaugo kraštus 5 x 5 kvadratu aplink kiekvieną pikselį. Tada mes naudojame stumdomą langą naudodami „strel“, kad sukurtume disko formos plokščią struktūrinį elementą, kurio kaimynystės spindulys yra 2, kad būtų galima nustatyti kiekvieną centrinį kilmės tašką kiekviename disko rajone. Mes panaudojome disko struktūrinį elementą, nes analizuojame kiekvieną apskritą tašką ir kiekvienos vietos pikselius, todėl disko formos elementas yra naudingesnis.

Kai vaizdas bus filtruojamas, jį galima išvalyti naudojant funkciją „priklijuoti“, kad būtų pašalintos juodos dėmės tarp filtruotų baltų vaizdo taškų ir uždaromi visi tarpai. Tada visiškai apdorotą vaizdą galima pavaizduoti antrame iš anksto paskirtos figūros pogrupyje, kad būtų galima palyginti neapdorotą ir filtruotą vaizdą.

4 žingsnis: naviko izoliacija per elipsinę kaukę

Naviko izoliacija per elipsinę kaukę
Naviko izoliacija per elipsinę kaukę
Naviko izoliacija per elipsinę kaukę
Naviko izoliacija per elipsinę kaukę
Naviko izoliacija per elipsinę kaukę
Naviko izoliacija per elipsinę kaukę

Ryškios naviko dėmės gali būti izoliuotos nuo pagrindinio filtruoto vaizdo per iš anksto sukurtą elipsinę kaukę. Norėdami sukurti šią kaukę, turėtumėte žinoti pradinio neapdoroto MRT vaizdo dydį ir, naudodami jo eilutės ir stulpelio ilgį, kaip atitinkamai x ir y koordinates, paskirkite elipsės centro koordinates. Mes nustatome y ašį kaip pagrindinę ašį, kurios spindulys yra 50 vienetų nuo centro, o mažąją ašį-40 vienetų spinduliu nuo centro.

Mes panaudojome MATLAB funkciją „meshgrid“, kad sukurtume stačiakampę plokštumą su dvimatėmis tinklelio koordinatėmis, remiantis koordinatėmis, esančiomis vektoriuose nuo 1 iki x ašies ilgio ir nuo 1 iki vaizdo y ašies ilgio.. Col yra matrica, kurioje kiekviena eilutė yra x ašies kopija, o Eilutė-matrica, kurioje kiekvienas stulpelis yra y ašies kopija. Dekarto tinklelis, pavaizduotas koordinatėmis Col ir Row, turi ilgio (1: Y_Size) eilutes ir ilgio (1: X_Size) stulpelius. Naudokite Col ir Row indeksus, kuriuos sukuria Dekarto tinklelis, kad nustatytumėte elipsės lygtį, atsižvelgiant į iš anksto nustatytą spindulį ir centro koordinates. Elipsinį kontūrą dabar galima užpildyti baltais pikseliais, rastais iš naviko dėmių.

Naudodami iš anksto sukurtą elipsinę kaukę iš filtruoto vaizdo galime iškirpti konkretų naviką, kurį norite analizuoti. Elipsinė kaukė nustato, kurios dėmės logiškai atitinka elipsės kontūrą, ir priima tai kaip tašką filtruotame vaizde, kad būtų priimtinas kaip navikas. Funkcija „bwareafilt“iš vaizdo filtruoja visus kitus objektus, esančius už šio aptikto naviko ribų. Remdamiesi visų vaizdų matmenimis, mes empiriškai naudojome konkretų 500 x 4000 langą. Tada mes pritaikėme kitą stumdomą langą su „streliu“kaip plokščio disko formos struktūrinį elementą, kurio kaimynystės spindulys yra 6, kad uždarytume tarpus tarp kiekvieno centrinio balto pikselio aptikto naviko. Aptikta naviko vieta toliau valoma naudojant „pridengti“, kad būtų toliau pašalinti juodi pikseliai ir visos skylės užpildytos „imfill“. Tada šis apdorotas navikas gali būti rodomas trečiajame iš anksto paskirstytoje schemoje, kad būtų galima palyginti izoliuotą naviką ir originalius bei filtruotus MRT vaizdus.

5 žingsnis: naviko apibūdinimas

Naviko apibūdinimas
Naviko apibūdinimas
Naviko apibūdinimas
Naviko apibūdinimas

Dabar, kai navikas yra izoliuotas su kauke, jį galima nubrėžti ir parodyti originaliame vaizde, kad būtų rodoma tiksli jo vieta. Norėdami tai padaryti, mes naudojome funkciją „bwboundaries“, kad galėtume aptikti anksčiau aptiktą naviką su kontūrais. Mes nurodėme kontūrą, kad neįtrauktų skylių į naviko objektą, kaip jis yra nubrėžtas. Tai galima pavaizduoti originaliame, neapdorotame vaizde, naudojant „for“kilpą, kuri nubraižo kontūrą aplink naviką, naudojant linijos, kurios linijos plotis yra 1,5 pikselio, indeksus. Tada šis kontūras nubraižomas ant neapdoroto vaizdo, parodant tikslų naviko dydį ir vietą, palyginti su pradiniu MRT nuskaitymu.

6 žingsnis: fizinių navikų savybių analizė

Analizuojant navikų fizines savybes
Analizuojant navikų fizines savybes
Analizuojant navikų fizines savybes
Analizuojant navikų fizines savybes

Izoliuota ir išdėstyta vieta gali suteikti mums naudingos informacijos apie naviko dydį, plotą ir vietą. Mes naudojome „regionprops“funkciją, kad nustatytume naviko savybes, susijusias su sritimi, perimetru, centroidais ir pikselių indekso verte. Ši pikselių indekso vertė suteikia mums realaus pasaulio vienetus kiekvienam kiekvieno vaizdo taškui, unikaliam kiekvienam nuskaitymui. Tada šias savybes galima konvertuoti į realaus pasaulio milimetrų vienetus. Empirinė informacija, kurią programa mums pateikia, yra unikali kiekvienam MRT nuskaitymui ir yra labai naudinga nustatant naviko dydį, vietą ir tipą, kurį vartotojai gali analizuoti ir įtraukti į grafinę vartotojo sąsają.

Rekomenduojamas: