Turinys:
- 1 žingsnis: raskite normalių smegenų ir smegenų, paveiktų Moyamoya, MRT ir MRA nuskaitymus
- 2 veiksmas: įkelkite vaizdus į MATLAB ir priskirkite vaizdus kintamajam, kad būtų rodomi vaizdai
- 3 žingsnis: patobulinkite intensyvumo vaizdo pailgas struktūras naudodami daugialypį filtravimą
- 4 veiksmas: paleiskite 2D vidutinį filtrą
- 5 žingsnis: užmaskuokite vaizdą
- 6 veiksmas: pasirinkite MRA nuskaitymus statistiniam bandymui
- 7 žingsnis: Apskaičiuokite kraujo indų plotą ruošiantis statistiniam tyrimui
- 8 veiksmas: atlikite nepriklausomų mėginių T testą
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Moyamoya, „dūmų pūtimas“, yra reta liga, kurią sukelia arterijų užsikimšimas bazinėse ganglijose, kurios yra smegenų pagrindas. Liga yra progresuojanti smegenų kraujotakos liga, kuria dažniausiai serga vaikai. Moyamoya simptomai yra pradinis insultas, nuolatiniai mini smūgiai, raumenų silpnumas, paralyžius ar traukuliai dėl laipsniško arterijų susiaurėjimo. Negydoma moyamoya sukels kalbos, jutimo sutrikimų ir sąmonės sutrikimų. Savo projekte mes naudosime MATLAB, kad iš anksto apdorotume MRT arba MRA vaizdą, naudodami įvairius filtrus, kad sumažintume vaizdo triukšmą ir surastume paveiktą zoną. Be to, norėdami tiksliau nustatyti paveiktas vietas, naudosime funkcijų patobulinimą. Be to, atliksime nepriklausomą mėginių t testą, kad nustatytume, ar yra reikšmingas skirtumas tarp normalių smegenų kraujagyslių kiekio, palyginti su smegenimis, paveiktomis moyamoya.
1 žingsnis: raskite normalių smegenų ir smegenų, paveiktų Moyamoya, MRT ir MRA nuskaitymus
Šie vaizdai yra skenavimas, kurį naudojome projektui, kurį radome internete. Du vaizdai, kurių kraujagyslės yra viduryje, yra MRT, o kiti du vaizdai - MRT.
Šios nuotraukos yra šiose nuorodose:
static.cambridge.org/resource/id/urn:cambr…
static.cambridge.org/resource/id/urn:cambr…
2 veiksmas: įkelkite vaizdus į MATLAB ir priskirkite vaizdus kintamajam, kad būtų rodomi vaizdai
Norėdami pradėti procesą, pirmiausia išvalykite komandų langą, uždarykite visus galimus skaičius ir grafikus, kurie jau gali būti atidaryti, ir išvalykite kintamuosius, jau priskirtus jūsų darbo vietoje.
Tada sukurkite ciklą nuo 1 iki 2 naudodami komandą i = [1: 2]
Po to įkelkite MRA atvaizdus naudodami komandą imread (sprintf ('failo pavadinimas%.filetype', i)), kad perskaitytumėte vaizdus iš failų, nurodytų failo pavadinimu, po kurio nurodomas skaičius, naudojamas ciklui naudojant paketą „Sprintf“. jį į kintamąjį.
Tada norėdami atvaizdą parodyti paveikslėlyje, naudokite komandą imshow (I).
Norėdami priskirti pilką spalvų schemą, naudokite komandą colormap (pilka).
Norėdami visiškai pašalinti spalvas ir paversti vaizdų 3D matricą į 2D, naudokite komandą rgb2gray (I) ir priskirkite ją atskiram kintamajam.
Tada įkelkite MRT vaizdus naudodami anksčiau nurodytą komandą arba imread (sprintf ('failo pavadinimas%.filetype', i)) ir priskirkite jį naujam kintamajam
Pakartokite komandą rgb2gray su nauju kintamuoju, naudojamu MRT atvaizdams.
Jei reikia, galite pakeisti vaizdo dydį naudodami komandą imresize (A, scale) ir priskirti atskirą kintamąjį.
3 žingsnis: patobulinkite intensyvumo vaizdo pailgas struktūras naudodami daugialypį filtravimą
Naudodami naują kintamąjį, naudokite komandą fibermetric (A), kad pagerintumėte vamzdines struktūras vaizduose
Naudodami ankstesnį kintamąjį, naudokite komandą histeq (B), kad padidintumėte histogramos išlyginimą, pakeisdami vaizdų intensyvumą ir priskirdami jį naujam kintamajam.
Rodykite histogramą naudodami komandą imhist (B)
Sukurkite naują kintamąjį, kad sukurtumėte filtro slenkstį. Tokiu atveju priskirkite ankstesnį kintamąjį> 0,875, filtruodami pikselių intensyvumą pagal reikšmę 0,875
Po to sukurkite naują figūrą ir naudokite komandą imshow (A), kad būtų rodomas naujas filtruotas vaizdas.
4 veiksmas: paleiskite 2D vidutinį filtrą
Naudodami komandą medfilt2 (A, [m n]), paleiskite 2D vidutinį filtrą, kuriame kiekviename išvesties taške yra vidutinė reikšmė mxn riboje aplink atitinkamą įvesties vaizdo pikselį.
Sukurkite naują figūrą ir naudokite „imshow“(A), kad būtų rodomas vidutinis filtruotas vaizdas.
5 žingsnis: užmaskuokite vaizdą
Naudodami vidutinį filtruotą vaizdą, naudokite komandą [etiketėImage, numberOfBlots] = bwlabel (A), kad suskaičiuotumėte baltų dėmių skaičių paveikslėlyje
Tada naudokite regiono rekvizitų funkcijos būsenas = regionprops (pažymėtasImage, 'Area'), kad apskaičiuotumėte kiekvieno dėmės ar kraujagyslės plotą
Priskirkite visas sritis į vieną kintamąjį
Tada, naudodami kitą kintamąjį, suskaičiuokite daugiau nei 50 pikselių dėmių skaičių
Tada surūšiuokite mažesne nei 50 pikselių dėmeles mažėjančia tvarka naudodami komandą [sortedAreas, sortedIndicies] = rūšiuoti (sritys, 'nusileisti')
Tada, naudodami kitą kintamąjį, naudokite komandą ismember (pažymėtasImage, sortedIndicies (1: numberToExtract)), norėdami grąžinti masyvą su elementais LabeledImage randami sortedIndicies nuo 1 iki kraujagyslių skaičiaus, kad būtų pateiktas loginis 1 (tiesa) arba loginis 0 (klaidingas).
Naudodami kintamąjį ankstesniame žingsnyje, raskite taškus, kurie yra teisingi (reikšmės> 0), ir sukurkite loginį masyvą, kad sukurtumėte dvejetainį vaizdą ir priskirtumėte jį naujam kintamajam.
Sukurkite naują figūrą ir naudokite imshow (A) naują dvejetainį vaizdą.
Tada apverskite vaizdą naudodami komandą imcomplement (A) ir priskirkite jį kitam kintamajam.
Norėdami sukurti užmaskuotą vaizdą, naudokite naują kintamąjį su komanda resizedimage.*Uint8 (invertedimage)
Sukurkite naują figūrą ir naudokite „imshow“(A), kad būtų rodomas užmaskuotas vaizdas.
Norėdami užbaigti visą kodą, būtinai naudokite komandą „end“, kad užbaigtumėte visą ciklą
6 veiksmas: pasirinkite MRA nuskaitymus statistiniam bandymui
Norėdami pasiruošti statistiniams tyrimams, pasirinkite MRA nuskaitymus, kurie bus naudojami nepriklausomiems mėginių t-bandymui. Kadangi mūsų du mėginiai bus paveikti Moyamoya smegenų ir normalių smegenų, pasirinkite tinkamą kiekvienos grupės MRA nuskaitymo kiekį.
7 žingsnis: Apskaičiuokite kraujo indų plotą ruošiantis statistiniam tyrimui
Statistinis testas bus sutelktas į kraujagyslių ilgį ar kiekį, parodytą MRA nuskaitymuose. Taigi prieš palyginimą turime apskaičiuoti kraujagyslių plotą.
Pradėkite filtruodami normalių smegenų MRA ir apskaičiuodami kraujagyslių kiekį. Norėdami tai padaryti, paleiskite for ciklą. Kadangi yra trys vaizdai, sąlyga bus i = [1: 3].
Atidarykite vaizdą naudodami komandą „imread“ir priskirkite jį kintamajam.
Tada sukurkite if/else teiginį naudodami komandą if, else. Jei sakinys if, naudokite komandą size (A, 3) == 3, kur A yra kintamasis, naudojamas vaizdui atidaryti, kad sukurtumėte teiginį if, kai trečiasis masyvo matmuo yra 3. Tada konvertuokite vaizdą į 2D ir atsikratyti spalvų naudodami komandą rgb2gray (A) ir priskirti ją naujam kintamajam. Norėdami pakeisti vaizdo dydį, naudokite komandą imresize (A, [m n]). Šiuo atveju mes pakeitėme vaizdų dydį į 1024 x 1024 matricą. Norėdami sustiprinti vamzdines vaizdo struktūras, dar kartą naudokite komandą fibermetrinė ir priskirkite ją naujam kintamajam.
Toliau pateikiamas kitas teiginys. Jei vaizdas nėra 3D matrica, norime praleisti konversiją. Atlikite tą patį, kaip teiginys if, bet be komandos rgb2gray (A).
Sukurkite naują kintamąjį, nustatydami jį lygų kintamajam iš fibermetrinio žingsnio didesnį nei 0,15. Tai riboja vaizdo intensyvumą, didesnį nei 0,15.
Mes kartosime kodų eilutes nuo instrukcinio 4 ir 5 žingsnių nuo vidurinės filtro eilutės iki parodymo (I) eilutės. Tada naudokite komandų sumą (I (:)), kad susumuotumėte visus kraujagysles sudarančius taškus ir priskirkite jį atskiram kintamajam. Pavadinkite naują kintamąjį NormalBloodVessels (i) ir nustatykite jį lygų kintamajam iš sumos (I (:)) komandos. Tai prideda duomenis prie matricos.
Užbaikite kilpą ir pakartokite, bet smegenų MRA, paveiktoms Moyamoya. Pabaigoje pavadinkite kintamąjį MoyaMoyaBloodVessels (i), kad nepainiotumėte jo su įprastomis smegenų MRT.
8 veiksmas: atlikite nepriklausomų mėginių T testą
Kadangi yra du nepriklausomi mėginiai ir nedidelė populiacija, atlikite nepriklausomų mėginių t testą.
Sukurkite ir įvardykite funkciją, kuri atlieka nepriklausomą mėginių t testą, kad nustatytų, ar kraujagyslių kiekis normalių smegenų MRA yra žymiai lygus ar ne Moyamoya paveiktų smegenų MRA.
Pateikite testui nustatytą hipotezę naudodami komandą disp ('X'). Pirmoje eilutėje parodykite „Hipotezės dviem mėginio t bandymams“. Antroje eilutėje rodykite „H0 = normalių smegenų kraujagyslių kiekis yra lygus smegenų, sergančių Moyamoya liga, kraujagyslių kiekiui“, kad būtų galima teigti nulinę hipotezę. Trečioje eilutėje rodykite: "HA = normalių smegenų kraujagyslių kiekis nėra lygus smegenų kraujagyslių, sergančių Moyamoya liga, kiekiui". pareikšti alternatyvią hipotezę.
Naudodami 95% patikimumo intervalą ir 3 imties dydį, apskaičiuokite t balą naudodami komandą tinv ([0,025 0,975], 2) ir priskirkite kintamajam t. Naudokite komandas var (NormalBloodVessels) ir var (MoyaMoyaBloodVessels) ir priskirkite juos kintamiesiems, kad apskaičiuotumėte abiejų duomenų rinkinių dispersijas.
Patikrinkite, ar dispersijos yra artimos lygioms, ar ne. Padarykite tai sukurdami if/else teiginį naudodami komandą if, else. Jei sakinyje yra sąlyga, parašykite A / B == [0,25: 4], kur A yra kintamasis, atspindintis normalių kraujagyslių dispersiją, o B - kintamasis, apibūdinantis Moyamoya kraujagyslių dispersiją. 0,25 ir 4 gaunami iš bendro įvertinimo, nustatančio, ar dispersijos yra lygios, ar ne. Tada atlikite dviejų mėginių t testą [h, p] = ttest2 (A, B, 0,05, 'abu', 'lygūs'), o A ir B yra tie patys kintamieji, kaip minėta anksčiau. Jei norite naudoti kitą teiginį, naudokite [h, p] = ttest2 (A, B, 0,05, 'abu', 'nelygus'), kad atliktumėte dviejų mėginių t testą tuo atveju, kai dispersijos nėra vienodos. Užbaikite teiginį jei/kitaip. Tai apskaičiuos p.
Sukurkite „if/else“teiginį, kuris parodys išvadą, pagrįstą p reikšme. Teiginio if sąlyga bus p> 0,05. Kadangi paprastai nepavyksta atmesti nulinės hipotezės, kai p vertė yra didesnė nei 0,05, naudokite komandą disp ('X'), kad būtų parodyta „Kadangi p reikšmė yra didesnė nei 0,05, mes negalime atmesti nulinės hipotezės“ir Todėl mes negalime atmesti, kad normalių smegenų kraujagyslių kiekis yra lygus smegenų, turinčių Moyamoya ligą. Kitame teiginyje, kadangi paprastai atmetame nulinę hipotezę, kai p reikšmė yra mažesnė nei 0,05, naudokite komandą disp ('X'), kad būtų parodyta „Kadangi p reikšmė yra mažesnė nei 0,05, mes atmetame nulinę hipotezę“ir „ Todėl mes negalime atmesti, kad normalių smegenų kraujagyslių kiekis nėra lygus smegenų, sergančių Moyamoya liga “. Užbaikite teiginį jei/kitaip.