Sisukord:
- Samm: otsige normaalse aju ja Moyamoya poolt mõjutatud aju MRI- ja MRA -skaneeringud
- Samm: laadige pildid MATLAB -i ja määrake piltide kuvamiseks muutujale pildid
- 3. samm: täiustage intensiivsete kujutiste piklikke struktuure mitmemõõtmelise filtreerimisega
- Samm: käivitage 2D mediaanfilter
- Samm: maskeerige pilt
- Samm: valige statistiliseks testimiseks MRA -skaneeringud
- Samm 7: Arvutage statistiliste testide ettevalmistamisel olevate veresoonte pindala
- 8. samm: käivitage sõltumatute proovide T-test
Video: Moyamoya pilditöötlus: 8 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Moyamoya, "suitsuõhk", on haruldane haigus, mis on põhjustatud arterite blokeerimisest basaalganglionides, mis on aju põhjas. Haigus on progresseeruv ajuveresoonkonna haigus, mis mõjutab enamasti lapsi. Moyamoya sümptomiteks on esmane insult, pidevad minilöögid, lihasnõrkus, halvatus või krambid arterite järkjärgulise ahenemise tagajärjel. Ilma ravita põhjustab moyamoya kõnehäireid, sensoorseid häireid ja teadvusekahjustusi. Oma projektis kasutame MATLAB -i MRI- või MRA -kujutise eeltöötlemiseks, kasutades erinevaid filtreid, et vähendada pildi müra, et leida kahjustatud piirkond. Lisaks kasutame kahjustatud piirkondade täpsemaks lokaliseerimiseks funktsiooni täiustust. Lisaks teeme seejärel sõltumatu proovide t-testi, et teha kindlaks, kas normaalse aju veresoonte koguses on moyamoya kahjustatud ajuga võrreldes märkimisväärne erinevus.
Samm: otsige normaalse aju ja Moyamoya poolt mõjutatud aju MRI- ja MRA -skaneeringud
Need pildid on skaneeringud, mida kasutasime projekti jaoks ja mille leidsime Internetist. Kaks pilti, mille keskel asuvad veresooned, on MRA -skaneeringud, ülejäänud kaks kujutist aga MRI -skaneeringud.
Need pildid leiate järgmistelt linkidelt:
static.cambridge.org/resource/id/urn:cambr…
static.cambridge.org/resource/id/urn:cambr…
Samm: laadige pildid MATLAB -i ja määrake piltide kuvamiseks muutujale pildid
Protsessi alustamiseks tühjendage käsuaken, sulgege kõik võimalikud joonised ja graafikud, mis võivad olla juba avatud, ja tühjendage tööruumis juba määratud muutujad.
Seejärel looge käsk i = [1: 2] jaoks silmus 1 kuni 2
Pärast seda laadige MRA -pildid käsuga imread (sprintf ('failinimi%.filetype', i)), et lugeda pilte failinimest määratud failidest, millele järgneb silmuse jaoks kasutatav number, kasutades partii laadimiseks sprintf -i ja määrates see muutujaks.
Seejärel pildi kuvamiseks joonisel kasutage käsku imshow (I).
Halli värvikaardi määramiseks kasutage käsku colormap (hall).
Värvide täielikuks kõrvaldamiseks ja piltide 3D -maatriksi teisendamiseks 2D -ks kasutage käsku rgb2gray (I) ja määrake see eraldi muutujale.
Seejärel laadige MRI -pildid, kasutades eelnevalt öeldud käsku või imread (sprintf ('failinimi%.filetype', i)) ja määrake see uuele muutujale
Korrake käsku rgb2gray uue muutujaga, mida kasutatakse MRI -piltide jaoks.
Vajadusel saate pildi suurust muuta käsuga imresize (A, skaala) ja määrata eraldi muutujale.
3. samm: täiustage intensiivsete kujutiste piklikke struktuure mitmemõõtmelise filtreerimisega
Kasutades uut muutujat, kasutage piltide torukujuliste struktuuride täiustamiseks käsku fibermetric (A)
Eelmise muutujaga kasutage histogrammi võrdsustamiseks käsku histeq (B), muutes piltide intensiivsust ja määrates selle uuele muutujale.
Kuva histogramm käsuga imhist (B)
Looge filtri läve loomiseks uus muutuja. Sel juhul määrake eelmine muutuja> 0,875, filtreerides pikslite intensiivsuse alla väärtuse 0,875
Seejärel looge uus joonis ja kasutage uue filtreeritud pildi kuvamiseks käsku imshow (A).
Samm: käivitage 2D mediaanfilter
Kasutades käsku medfilt2 (A, [m n]), käivitage 2D mediaanfilter, kus iga väljundpiksel sisaldab sisendpildi vastava piksli ümber oleva mxn piiri mediaanväärtust.
Looge uus joonis ja kasutage imshow (A), et kuvada mediaanfiltreeritud pilt.
Samm: maskeerige pilt
Kasutades keskmist filtreeritud pilti, kasutage pildil valgete laikude arvu lugemiseks käsku [labeledImage, numberOfBlots] = bwlabel (A)
Seejärel kasutage piirkondade rekvisiitide funktsiooni olekuid = regionprops (märgistatud pilt, 'ala'), et arvutada iga pleki või veresoone pindala
Määrake kõik alad üheks muutujaks
Seejärel loendage teise muutuja abil blotide arv, mis ületab 50 pikslit
Seejärel sorteerige alla 50 piksli suurused blotid kahanevas järjekorras, kasutades käsku [sortedAreas, sortedIndicies] = sort (Areas, 'downcend')
Seejärel, kasutades mõnda muud muutujat, kasutage käsku ismember (labeledImage, sortedIndicies (1: numberToExtract)), et tagastada massiiv, millel on elemendid labeledImage. loogiline 0 (vale).
Leidke eelmise sammu muutuja abil õiged punktid (väärtused> 0) ja looge loogiline massiiv, et teha binaarkujutis ja määrata see uuele muutujale.
Looge uus joonis ja kasutage uue binaarpildi kuvamist (A).
Seejärel pöörake pilt käsu imcomplement (A) abil ümber ja määrake see teisele muutujale.
Maskeeritud pildi loomiseks kasutage uut muutujat käsuga resizedimage.*Uint8 (invertedimage)
Looge uus joonis ja kasutage maskeeritud pildi kuvamiseks imshow (A).
Kogu koodi lõpetamiseks kasutage kindlasti kogu silmuse lõpetamiseks käsku 'end'
Samm: valige statistiliseks testimiseks MRA -skaneeringud
Statistiliste testide ettevalmistamiseks valige MRA skaneeringud, mida kasutatakse sõltumatute proovide t-testiks. Kuna meie kaks proovi mõjutavad Moyamoya aju ja tavalisi ajusid, valige igast rühmast korralik MRA -skaneering.
Samm 7: Arvutage statistiliste testide ettevalmistamisel olevate veresoonte pindala
Statistiline test keskendub MRA skannimisel näidatud veresoonte pikkusele või kogusele. Seega peame enne võrdlust arvutama veresoonte pindala.
Alustage normaalsete ajude MRA filtreerimisest ja veresoonte hulga arvutamisest. Selleks käivitage for loop. Kuna kujutisi on kolm, on tingimus i = [1: 3].
Avage pilt käsuga imread ja määrake see muutujale.
Seejärel looge käsuga if, else käsk if/else. Kui kasutate lauset if, kasutage käsku size (A, 3) == 3, kus A on pildile avamiseks kasutatav muutuja, et luua if -lause, kui massiivi kolmas mõõde on 3. Seejärel teisendage pilt 2D -le ja vabaneda värvist käsu rgb2gray (A) abil ning määrata see uuele muutujale. Pildi suuruse muutmiseks kasutage käsku imresize (A, [m n]). Sel juhul muutsime piltide suuruseks 1024 x 1024 maatriksit. Pildi torukujuliste struktuuride täiustamiseks kasutage uuesti fibermetrilist käsku ja määrake see uuele muutujale.
Järgmine on muu avalduse kohta. Kui pilt ei ole 3D -maatriks, tahame teisendamise vahele jätta. Tehke sama nagu if -lausega, kuid ilma käsuta rgb2gray (A).
Looge uus muutuja, seades selle võrdseks fibermetrilise astme muutujaga suuremaks kui 0,15. See lähendab kujutist intensiivsusele üle 0,15.
Kordame juhendirežiimi sammudest 4 ja 5 pärit koodiridu mediaanfiltrirealt kuni näidis (I) reale. Seejärel kasutage käsusummat (I (:)), et liita kokku kõik veresooni moodustavad pikslid, ja määrake see eraldi muutujale. Nimetage uus muutuja NormalBloodVessels (i) ja seadke see võrdseks muutujaga sum (I (:)) käsust. See lisab andmed maatriksisse.
Lõpetage tsükkel ja korrake, kuid Moyamoya poolt mõjutatud ajude MRA puhul. Nimetage muutuja lõpus MoyaMoyaBloodVessels (i), et mitte segi ajada aju normaalsete MRA -dega.
8. samm: käivitage sõltumatute proovide T-test
Kuna on kaks sõltumatut proovi ja väike populatsioon, viige läbi sõltumatu proovide t-test.
Looge ja nimetage funktsioon, mis teostab sõltumatut proovide t-testi, et teha kindlaks, kas normaalsete aju MRA-de veresoonte kogus on oluliselt võrdne või mitte Moyamoya poolt mõjutatud aju MRA-dega.
Kuvage testi jaoks seatud hüpotees, kasutades käsku disp ('X'). Esimesel real kuvage "Hüpoteesid kahe proovi testimiseks". Teisel real näidake nullhüpoteesi kuvamiseks: "H0 = normaalse aju veresoonte kogus võrdub Moyamoya haigusega aju veresoonte kogusega". Kolmandal real kuvage: "HA = Normaalse aju veresoonte kogus ei võrdu Moyamoya haigusega aju veresoonte kogusega." esitada alternatiivne hüpotees.
Kasutades 95% usaldusintervalli ja valimi suurust 3, arvutage t skoor käsu tinv ([0,025 0,975], 2) abil ja määrake muutujale t. Mõlema andmekogumi dispersiooni arvutamiseks kasutage käske var (NormalBloodVessels) ja var (MoyaMoyaBloodVessels) ning määrake need muutujatele.
Kontrollige, kas erinevused on lähedased või mitte. Tehke seda, luues if/else lause käsuga if, else. If -i lause tingimuseks kirjutage A / B == [0,25: 4], kus A on muutuja, mis moodustab normaalsete veresoonte dispersiooni, ja B on muutuja, mis moodustab Moyamoya veresoonte dispersiooni. 0,25 ja 4 pärinevad üldisest hinnangust, et teha kindlaks, kas dispersioonid on võrdsed või mitte. Seejärel tehke kahe proovi t test, kus [h, p] = ttest2 (A, B, 0,05, 'mõlemad', 'võrdsed'), kusjuures A ja B on samad muutujad, nagu eespool mainitud. Lause else jaoks kasutage kahe valimi t testi tegemiseks [h, p] = ttest2 (A, B, 0,05, 'mõlemad', 'ebavõrdne') juhul, kui dispersioonid pole võrdsed. Lõpetage if/else lause. See arvutab p.
Looge if/else lause, mis kuvab järelduse p väärtuse põhjal. Väite if tingimus on p> 0,05. Kuna me tavaliselt ei lükka nullhüpoteesi tagasi, kui p väärtus on suurem kui 0,05, kasutage käsku disp ('X'), et kuvada "Kuna p väärtus on suurem kui 0,05, ei suuda me nullhüpoteesi tagasi lükata" ja " Seetõttu ei lükka me tagasi, et normaalse aju veresoonte kogus on võrdne Moyamoya haigusega aju omaga. " Kuna lauses else lükame nullhüpoteesi tavaliselt tagasi, kui p väärtus on alla 0,05, kasutage käsku disp ('X'), et kuvada "Kuna p väärtus on väiksem kui 0,05, lükkame nullhüpoteesi tagasi" ja " Seetõttu ei suuda me tagasi lükata, et normaalse aju veresoonte kogus ei ole võrdne Moyamoya haigusega aju omaga. " Lõpetage if/else lause.
Soovitan:
Pilditöötlus Raspberry Pi abil: OpenCV ja pildi värvide eraldamise installimine: 4 sammu
Pilditöötlus Raspberry Pi abil: OpenCV ja pildivärvide eraldamise installimine: see postitus on esimene mitmest järgnevast pilditöötluse õpetusest. Vaatame pilti moodustavaid piksleid lähemalt, õpime OpenCV -d Raspberry Pi -le installima ja kirjutame pildi salvestamiseks ka testiskripte
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Akustiline levitatsioon Arduino Unoga samm-sammult (8 sammu): 8 sammu
Akustiline levitatsioon Arduino Uno abil samm-sammult (8 sammu): ultraheliheli muundurid L298N DC-naissoost adapteri toiteallikas isase alalisvoolupistikuga Arduino UNOBreadboard ja analoogpordid koodi teisendamiseks (C ++)
4G/5G HD -video otseülekanne DJI droonilt madala latentsusega [3 sammu]: 3 sammu
4G/5G HD-video otseülekanne DJI droonilt madala latentsusega [3 sammu]: Järgnev juhend aitab teil saada HD-kvaliteediga otseülekandeid peaaegu igalt DJI droonilt. FlytOSi mobiilirakenduse ja veebirakenduse FlytNow abil saate alustada drooni video voogesitust
Kvantimeetriline pilditöötlus: 5 sammu
Kvantimeetriline pilditöötlus: (ülaltoodud joonis illustreerib olemasoleva pilditöötlusmeetodi võrdlust kvantimeetrilise pilditöötlusega. Pange tähele paremat tulemust. Ülemises parempoolses pildis on näha kummalisi esemeid, mis tulenevad valest eeldusest, et pildid mõõdavad midagi sellist