Sisällysluettelo:
- Vaihe 1: MRI- ja MRA -skannaukset normaaleista aivoista ja Moyamoyasta kärsivistä aivoista
- Vaihe 2: Lataa kuvia MATLABiin ja määritä kuvat muuttujalle näytettäväksi
- Vaihe 3: Paranna pitkänomaisia rakenteita intensiivisyyskuvassa moniasteisella suodatuksella
- Vaihe 4: Suorita 2D -mediaanisuodatin
- Vaihe 5: Peitä kuva
- Vaihe 6: Valitse MRA -skannaukset tilastollista testausta varten
- Vaihe 7: Laske verisuonten alue tilastollista testausta valmisteltaessa
- Vaihe 8: Suorita riippumaton näytteiden T-testi
Video: Moyamoya -kuvankäsittely: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Moyamoya, "savuhöyry", on harvinainen sairaus, joka johtuu valtimoiden tukkeutumisesta basaaliganglioissa, joka on alue aivojen pohjalla. Tauti on etenevä aivoverisuonisairaus, joka vaikuttaa useimmiten lapsiin. Moyamoyan oireita ovat ensimmäinen aivohalvaus, jatkuva mini-aivohalvaus, lihasheikkous, halvaus tai kouristukset valtimoiden asteittaisen kaventumisen seurauksena. Ilman hoitoa moyamoya aiheuttaa puheongelmia, aistihäiriöitä ja tajunnan vaurioita. Projektissamme käytämme MATLABia esikäsittelyyn MRI- tai MRA -kuvaan käyttämällä erilaisia suodattimia kuvan kohinan vähentämiseksi ja etsimään kyseinen alue. Lisäksi käytämme ominaisuuden parannusta haavoittuvien alueiden paikantamiseen tarkemmin. Lisäksi suoritamme sitten riippumattoman näytteen t-testin määrittääksemme, onko normaaleissa aivoissa verisuonten määrässä merkittävä ero verrattuna moyamoya-aivoihin.
Vaihe 1: MRI- ja MRA -skannaukset normaaleista aivoista ja Moyamoyasta kärsivistä aivoista
Nämä kuvat ovat skannauksia, joita käytimme projektissa ja jotka löysimme verkossa. Kaksi kuvaa, joiden verisuonet sijaitsevat keskellä, ovat MRA -skannauksia, kun taas kaksi muuta kuvaa ovat MRI -skannauksia.
Nämä kuvat löytyvät seuraavista linkeistä:
static.cambridge.org/resource/id/urn:cambr…
static.cambridge.org/resource/id/urn:cambr…
Vaihe 2: Lataa kuvia MATLABiin ja määritä kuvat muuttujalle näytettäväksi
Aloita prosessi tyhjentämällä komentoikkuna, sulkemalla kaikki mahdolliset luvut ja kaaviot, jotka voivat olla jo avoinna, ja tyhjentämällä muuttujat, jotka on jo määritetty työtilassasi.
Luo sen jälkeen for -silmukka 1 - 2 komennolla i = [1: 2]
Lataa sen jälkeen MRA -kuvat komennolla imread (sprintf ('tiedostonimi%.filetype', i)), jos haluat lukea kuvat tiedostonimellä määritetyistä tiedostoista ja silmukan numerosta käyttämällä sprintf: ää erän lataamiseen ja määritä se muuttujaksi.
Jos haluat näyttää kuvan kuvassa, käytä sitten komentoa imshow (I).
Määritä harmaa värikartta komennolla colormap (harmaa).
Voit poistaa värit kokonaan ja muuntaa kuvien 3D -matriisin 2D -muotoon käyttämällä komentoa rgb2gray (I) ja määrittämällä se erilliselle muuttujalle.
Lataa sitten MRI -kuvat käyttämällä aiemmin ilmoitettua komentoa tai imread (sprintf ('tiedostonimi%.filetype', i)) ja määritä se uudelle muuttujalle
Toista rgb2gray -komento uudella muuttujalla, jota käytetään MRI -kuvissa.
Tarvittaessa voit muuttaa kuvan kokoa komennolla imresize (A, asteikko) ja määrittää sen erilliselle muuttujalle.
Vaihe 3: Paranna pitkänomaisia rakenteita intensiivisyyskuvassa moniasteisella suodatuksella
Käytä uutta muuttujaa parantamalla kuvien putkimaisia rakenteita komennolla fibermetric (A)
Käytä edellisellä muuttujalla komentoa histeq (B) tehostaaksesi histogrammien tasauksia muuttamalla kuvien voimakkuutta ja liittämällä ne uudelle muuttujalle.
Näytä histogrammi komennolla imhist (B)
Luo uusi muuttuja ja luo kynnys suodattimelle. Tässä tapauksessa määritä edellinen muuttuja> 0.875, suodattaen pikselien intensiteetin alle arvon 0.875
Luo sen jälkeen uusi kuva ja näytä uusi suodatettu kuva komennolla imshow (A).
Vaihe 4: Suorita 2D -mediaanisuodatin
Käytä komentoa medfilt2 (A, [m n]) ja suorita 2D -mediaanisuodatin, jossa jokainen lähtöpikseli sisältää mediaaniarvon mxn -rajalla vastaavan pikselin ympärillä tulokuvassa.
Luo uusi kuva ja käytä imshow (A) näyttääksesi mediaanisuodatetun kuvan.
Vaihe 5: Peitä kuva
Käytä keskisuodatettua kuvaa käyttämällä komentoa [labeledImage, numberOfBlots] = bwlabel (A) laskeaksesi valkoisten täplien määrä kuvassa
Laske sitten alueiden rekvisiittafunktion tilat = alueprops (labeledImage, 'Area') laskeaksesi kunkin blotin tai verisuonen alueet
Määritä kaikki alueet yhdeksi muuttujaksi
Laske sitten toisen muuttujan avulla yli 50 pikselin blotien määrä
Tämän jälkeen lajittele kaikki alle 50 pikselin blotit laskevassa järjestyksessä komennolla [sortedAreas, sortedIndicies] = sort (Areas, 'laskeudu')
Käytä sitten toista muuttujaa komennolla ismember (labeledImage, sortedIndicies (1: numberToExtract)) palauttaaksesi taulukon, jossa on elementtejä labeledImage löytyy sortedIndicies numerosta 1 verisuonten määrään palauttaaksesi loogisen 1 (true) tai looginen 0 (epätosi).
Kun muuttuja on edellisessä vaiheessa, etsi pisteet, jotka ovat totta (arvot> 0) ja luo looginen taulukko binäärikuvan luomiseksi ja liitä se uuteen muuttujaan.
Luo uusi kuva ja käytä imshow (A) uutta binäärikuvaa.
Käännä sitten kuva komennolla imcomplement (A) ja määritä se toiselle muuttujalle.
Jos haluat luoda peitetyn kuvan, käytä uutta muuttujaa komennolla resizedimage.*Uint8 (invertedimage)
Luo uusi kuva ja käytä imshow (A) näyttääksesi peitetyn kuvan.
Jos haluat lopettaa koko koodin, muista lopettaa koko silmukka komennolla 'end'
Vaihe 6: Valitse MRA -skannaukset tilastollista testausta varten
Valmistautuaksesi tilastolliseen testaukseen valitse MRA-skannaukset, joita käytetään itsenäisten näytteiden t-testissä. Koska kaksi näytettämme ovat Moyamoyan aivot ja normaalit aivot, valitse kunnollinen määrä MRA -skannauksia kustakin ryhmästä.
Vaihe 7: Laske verisuonten alue tilastollista testausta valmisteltaessa
Tilastollinen testi keskittyy MRA -skannauksissa näkyvien verisuonten pituuteen tai määrään. Siksi meidän on laskettava verisuonten alue ennen vertailua.
Aloita suodattamalla normaalien aivojen MRA: t ja laskemalla verisuonten määrä. Suorita tämä suorittamalla for -silmukka. Koska kuvia on kolme, ehto on i = [1: 3].
Avaa kuva imread -komennolla ja määritä se muuttujaan.
Luo seuraavaksi if/else -käsky if, else -komennolla. Käytä if -lausetta komennolla size (A, 3) == 3, jossa A on muuttuja, jota käytetään kuvan avaamiseen. Luo if -lauseke, kun taulukon kolmas ulottuvuus on 3. Muunna 2D: hen ja päästä eroon väreistä komennolla rgb2gray (A) ja määritä se uudelle muuttujalle. Muuta kuvan kokoa komennolla imresize (A, [m n]). Tässä tapauksessa muutimme kuvien koon 1024 x 1024 matriisiksi. Paranna kuvan putkimaisia rakenteita käyttämällä fibermetristä komentoa uudelleen ja määrittämällä se uudelle muuttujalle.
Seuraava koskee muuta lausumaa. Jos kuva ei ole 3D -matriisi, haluamme ohittaa muuntamisen. Tee sama kuin if -lause, mutta ilman rgb2gray (A) -komentoa.
Luo uusi muuttuja ja aseta se yhtä suureksi kuin muuttuja kuitumittausvaiheesta suurempi kuin 0,15. Tämä kynnyttää kuvan voimakkuuksille, jotka ovat suurempia kuin 0,15.
Toistamme koodirivit ohjeiden vaiheista 4 ja 5 mediaanisuodatinriviltä imshow (I) -riville. Käytä sen jälkeen komentosummaa (I (:)) kaikkien verisuonten pikselien laskemiseen ja liitä se erilliseen muuttujaan. Nimeä uusi muuttuja NormalBloodVessels (i) ja aseta se samaksi muuttujan sum (I (:)) -komennosta. Tämä lisää tiedot matriisiin.
Lopeta silmukka ja toista, mutta Moyamoyan aivojen MRA: ille. Nimeä muuttuja lopussa MoyaMoyaBloodVessels (i), jotta se ei sekoitu normaaliin aivojen MRA: han.
Vaihe 8: Suorita riippumaton näytteiden T-testi
Koska on olemassa kaksi itsenäistä näytettä ja pieni populaatio, suorita riippumaton näytteiden t-testi.
Luo ja nimeä funktio, joka suorittaa riippumattoman näytteen t-testin sen määrittämiseksi, ovatko verisuonten määrä normaaleissa aivoissa MRA: ssa merkittävästi sama kuin Moyamoyan aivojen MRA: t.
Näytä testille asetettu hypoteesi komennolla disp ('X'). Näytä ensimmäisellä rivillä "Hypoteesit kahdelle näytteen t -testille". Näytä toisella rivillä "H0 = Normaalien aivojen verisuonten määrä on yhtä suuri kuin Moyamoya -tautia sairastavien aivojen verisuonten määrä". Näytetään kolmannella rivillä "HA = Normaalien aivojen verisuonten määrä ei vastaa Moyamoya -tautia sairastavien aivojen verisuonten määrää." vaihtoehtoisen hypoteesin esittämiseksi.
Laske t -pisteet käyttämällä 95%: n luottamusväliä ja näytteen kokoa 3 käyttämällä tinv -komentoa ([0,025 0,975], 2) ja määrittämällä muuttuja t. Käytä komentoja var (NormalBloodVessels) ja var (MoyaMoyaBloodVessels) ja määritä ne muuttujille laskemaan kummankin tietojoukon varianssit.
Tarkista, ovatko vaihtelut lähellä tai eivät. Tee tämä luomalla if/else -lause if, else -komennolla. Kirjoita if -lauseen ehdolle A / B == [0.25: 4], jossa A on muuttuja, joka vastaa normaalien verisuonten varianssia, ja B on muuttuja, joka vastaa Moyamoya -verisuonten varianssia. 0,25 ja 4 tulevat yleisestä arviosta sen määrittämiseksi, ovatko varianssit yhtä suuret vai eivät. Suorita sitten kahden näytteen t -testi [h, p] = ttest2 (A, B, 0,05, 'molemmat', 'yhtä'), ja A ja B ovat samat muuttujat kuin edellä mainittiin. Käytä muuta lausetta varten [h, p] = ttest2 (A, B, 0,05, 'molemmat', 'epätasainen') kahden näytteen t -testin suorittamiseksi, jos varianssit eivät ole yhtä suuret. Lopeta if/else -lause. Tämä laskee p.
Luo if/else -lause, joka näyttää johtopäätöksen arvon p perusteella. Jos -lauseen ehto on p> 0,05. Koska emme yleensä hylkää nollahypoteesia, kun p: n arvo on suurempi kuin 0,05, käytä disp ('X') -komentoa näyttämään "Koska p -arvo on suurempi kuin 0,05, emme hylkää nollahypoteesia" ja " Siksi emme hylkää sitä, että normaalien aivojen verisuonten määrä on sama kuin Moyamoya -tautia sairastavien aivojen verisuonten määrä. " Koska lauseessa else hylkäämme yleensä nollahypoteesin, kun p: n arvo on alle 0,05, käytä disp ('X') -komentoa näyttääksesi "Koska p -arvo on alle 0,05, hylkäämme nollahypoteesin" ja " Siksi emme hylkää sitä, että normaalien aivojen verisuonten määrä ei ole sama kuin Moyamoya -tautia sairastavien aivojen verisuonten määrä. " Lopeta if/else -lause.
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen