Indholdsfortegnelse:

Moyamoya billedbehandling: 8 trin
Moyamoya billedbehandling: 8 trin

Video: Moyamoya billedbehandling: 8 trin

Video: Moyamoya billedbehandling: 8 trin
Video: 6-25-20 BYPASS SURGERY FOR MOYAMOYA-Steinberg/Xu/Vajkoczy/Langer/Pradilla/Baccanelli-Morcos 2024, Juli
Anonim
Moyamoya billedbehandling
Moyamoya billedbehandling

Moyamoya, "røgpust", er en sjælden sygdom, der skyldes blokering af arterier ved basalganglierne, som er et område ved hjernens bund. Sygdommen er en progressiv cerebrovaskulær sygdom, der for det meste rammer børn. Symptomer på moyamoya omfatter et indledende slagtilfælde, konstante minislag, muskelsvaghed, lammelse eller anfald som følge af den gradvise indsnævring af arterier. Uden behandling vil moyamoya forårsage problemer med tale, sensorisk svækkelse og beskadiget bevidsthed. I vores projekt vil vi bruge MATLAB til at forbehandle et MRI- eller MRA -billede ved hjælp af forskellige filtre til at reducere støj i billedet for at lokalisere det berørte område. Derudover vil vi bruge en funktionsforbedring til at lokalisere de berørte områder mere præcist. Desuden vil vi derefter køre en uafhængig prøve-t-test for at afgøre, om der er en signifikant forskel mellem mængden af blodkar i en normal hjerne i forhold til en hjerne påvirket af moyamoya.

Trin 1: Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya

Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya
Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya
Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya
Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya
Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya
Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya
Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya
Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya

Disse billeder er de scanninger, vi brugte til projektet, som vi fandt online. De to billeder med blodkarrene placeret i midten er MRA -scanninger, mens de to andre billeder er MR -scanninger.

Følgende links er, hvor disse billeder findes:

static.cambridge.org/resource/id/urn:cambr…

static.cambridge.org/resource/id/urn:cambr…

Trin 2: Indlæs billeder i MATLAB, og tildel billeder til en variabel til visning af billeder

Indlæs billeder på MATLAB, og tildel billeder til en variabel til visning af billeder
Indlæs billeder på MATLAB, og tildel billeder til en variabel til visning af billeder

For at starte processen skal du starte med at rydde kommandovinduet, lukke alle de mulige figurer og grafer, der allerede er åbne, og rydde variabler, der allerede er tildelt i dit arbejdsområde.

Efterfølgende skal du oprette en for loop fra 1 til 2 ved hjælp af kommandoen i = [1: 2]

Efterfølgende skal du indlæse MRA -billederne med kommandoen imread (sprintf ('filnavn%.filetype', i)) for at læse billederne fra filerne, der er angivet med filnavnet efterfulgt af det nummer, der bruges til sløjfen ved hjælp af sprintf til batchindlæsning og tildele det til en variabel.

Brug derefter kommandoen imshow (I) for at vise billedet i en figur.

Brug kommandoen colormap (grå) til at tildele en grå farvekort.

For helt at fjerne farve og konvertere 3D -matrixen for billederne til 2D, skal du bruge kommandoen rgb2gray (I) og tildele den til en separat variabel.

Indlæs derefter MR -billederne ved at bruge kommandoen tidligere angivet eller imread (sprintf ('filnavn%.filetype', i)) og tildel den til en ny variabel

Gentag kommandoen rgb2gray med den nye variabel, der bruges til MR -billederne.

Hvis det er nødvendigt, kan du ændre størrelsen på et billede ved hjælp af kommandoen imresize (A, skala) og tildele en separat variabel.

Trin 3: Forbedre aflange strukturer i intensitetsbillede med multiskala filtrering

Forbedre aflange strukturer i intensitetsbillede med multiskala filtrering
Forbedre aflange strukturer i intensitetsbillede med multiskala filtrering

Brug en ny variabel til at bruge kommandoen fibermetrisk (A) til at forbedre de rørformede strukturer i billederne

Med den forrige variabel skal du bruge kommandoen histeq (B) til at forbedre histogramudligningerne ved at transformere intensiteten af billederne og tildele den til en ny variabel.

Vis histogrammet ved hjælp af kommandoen imhist (B)

Opret en ny variabel for at oprette en tærskel for filteret. I dette tilfælde skal du tildele den tidligere variabel> 0,875 og filtrere pixelintensiteten ud under værdien 0,875

Efterfølgende skal du oprette en ny figur og bruge kommandoen imshow (A) til at vise det nye filtrerede billede.

Trin 4: Kør et 2D -medianfilter

Kør et 2D -medianfilter
Kør et 2D -medianfilter

Brug kommando medfilt2 (A, [m n]), kør et 2D -medianfilter, hvor hver outputpixel indeholder medianværdien i mxn -grænsen omkring den respektive pixel i inputbilledet.

Opret en ny figur, og brug imshow (A) til at vise medianfiltreret billede.

Trin 5: Masker billedet

Masker billedet
Masker billedet

Brug median filtreret billede, brug kommandoen [labeledImage, numberOfBlots] = bwlabel (A) til at tælle antallet af hvide pletter i billedet

Brug derefter regionstøttefunktionstilstande = regionprops (labeledImage, 'Area') til at beregne områderne for hver blot eller blodkar

Tildel alle områderne til en variabel

Brug derefter en anden variabel til at tælle antallet af blots, der overstiger 50 pixels

Sorter derefter alle blots, der er under 50 pixels i faldende rækkefølge, ved hjælp af kommandoen [sortedAreas, sortedIndicies] = sort (Areas, 'descend')

Brug derefter en anden variabel til at bruge kommandoen ismember (labeledImage, sortedIndicies (1: numberToExtract)) for at returnere en matrix med elementer af labeledImage findes i sortedIndicies fra nummer 1 til antallet af blodkar for at returnere en logisk 1 (true) eller en logisk 0 (falsk).

Med variablen i det foregående trin skal du finde de punkter, der er sande (værdier> 0), og oprette et logisk array for at lave et binært billede og tildele det til en ny variabel.

Opret en ny figur og brug imshow (A) det nye binære billede.

Vend derefter billedet ved hjælp af kommandoimplementering (A) og tildel det til en anden variabel.

For at oprette et maskeret billede skal du bruge en ny variabel med kommando resizedimage.*Uint8 (invertedimage)

Opret en ny figur, og brug imshow (A) til at vise maskeret billede.

For at afslutte hele koden skal du bruge kommandoen 'ende' til at afslutte hele for loop

Trin 6: Vælg MRA -scanninger til statistisk testning

Vælg MRA -scanninger til statistisk testning
Vælg MRA -scanninger til statistisk testning
Vælg MRA -scanninger til statistisk testning
Vælg MRA -scanninger til statistisk testning
Vælg MRA -scanninger til statistisk testning
Vælg MRA -scanninger til statistisk testning

For at forberede statistisk test skal du vælge de MRA-scanninger, der skal bruges til de uafhængige prøver t-test. Fordi vores to prøver vil være hjerner påvirket Moyamoya og normale hjerner, skal du vælge en anstændig mængde MRA -scanninger af hver gruppe.

Trin 7: Beregn arealet af blodkar i forberedelse til statistisk testning

Beregn arealet af blodkar i forberedelse til statistisk testning
Beregn arealet af blodkar i forberedelse til statistisk testning

Den statistiske test fokuserer på længden eller mængden af blodkar vist på MRA -scanninger. Således skal vi beregne arealet af blodkarene før sammenligning.

Start med at filtrere MRA'erne for normale hjerner og beregne mængden af blodkar. For at gøre dette skal du køre en for loop. Fordi der er tre billeder, vil betingelsen være i = [1: 3].

Åbn billedet med kommandoen imread, og tildel det til en variabel.

Opret derefter en if/else -sætning med kommandoen if, else. Til if -sætningen skal du bruge kommandostørrelsen (A, 3) == 3, hvor A er variablen, der bruges til at åbne for billedet, for at oprette en if -sætning til, når den tredje dimension i matrixen er 3. Konverter derefter billedet til 2D og slippe af med farve ved hjælp af kommandoen rgb2gray (A) og tildele den til en ny variabel. Brug kommandoen imresize (A, [m n]) til at ændre størrelsen på billedet. I dette tilfælde ændrede vi størrelsen på billederne til 1024 x 1024 matrix. For at forbedre billedets rørformede strukturer skal du bruge den fibermetriske kommando igen og tildele den til en ny variabel.

Følgende er for den anden erklæring. Hvis billedet ikke er en 3D -matrix, vil vi springe konvertering over. Gør det samme som if -sætningen, men uden kommandoen rgb2gray (A).

Opret en ny variabel, og indstil den lig med variablen fra det fibermetriske trin større end 0,15. Dette tærskler billedet for intensiteter større end 0,15.

Vi vil gentage kodelinjerne fra trin 4 og 5 i den instruerbare fra medianfilterlinjen indtil imshow (I) -linjen. Brug derefter kommandosummen (I (:)) til at tilføje alle pixels, der udgør blodkar, og tildele den til en separat variabel. Navngiv en ny variabel NormalBloodVessels (i), og sæt den lig med variablen fra summen (I (:)) kommando. Dette tilføjer dataene til matricen.

Afslut løkken og gentag, men for MRA'erne i hjerner, der er påvirket af Moyamoya. Navngiv variablen i slutningen MoyaMoyaBloodVessels (i) for ikke at forveksle den med de normale hjerne -MRA'er.

Trin 8: Kør en uafhængig prøve T-test

Kør en Independent Samples T-test
Kør en Independent Samples T-test

Da der er to uafhængige prøver og en lille population, køres en uafhængig prøver t-test.

Opret og navngiv en funktion, der kører en uafhængig prøve-t-test for at afgøre, om mængden af blodkar i MRA'er for normale hjerner er væsentligt lig med eller ikke MRA'er i hjerner, der er påvirket af Moyamoya.

Vis hypotesen for testen ved hjælp af kommandoen disp ('X'). På den første linje vises "Hypoteser til to prøver t test." På den anden linje vises "H0 = Mængden af blodkar i en normal hjerne er lig med mængden af blodkar i en hjerne med Moyamoya sygdom", for at angive nulhypotesen. På den tredje linje vises "HA = Mængden af blodkar i en normal hjerne svarer ikke til mængden af blodkar i en hjerne med Moyamoya sygdom." at angive den alternative hypotese.

Brug et 95% konfidensinterval og en stikprøvestørrelse på 3 til at beregne t -score ved at bruge kommandoen tinv ([0,025 0,975], 2) og tildele variabel t. Brug kommandoen var (NormalBloodVessels) og var (MoyaMoyaBloodVessels), og tildel dem variabler for at beregne afvigelserne mellem begge datasæt.

Kontroller, om afvigelserne er tæt på ens eller ej. Gør dette ved at oprette en if/else -sætning med kommandoen if, else. For tilstanden i if -sætningen skal du skrive A / B == [0,25: 4], hvor A er variablen, der tegner sig for variansen af normale blodkar, og B er variablen, der tegner sig for variansen af Moyamoya -blodkar. 0,25 og 4 kommer fra et generelt skøn til bestemmelse af, om afvigelser er ens eller ej. Kør derefter de to prøve t -test med [h, p] = ttest2 (A, B, 0,05, 'begge', 'lige'), hvor A og B er de samme variabler som nævnt før. For den anden sætning skal du bruge [h, p] = ttest2 (A, B, 0,05, 'begge', 'ulige') til at køre en to -prøve t -test i tilfælde, hvor afvigelserne ikke er ens. Afslut if/else -sætningen. Dette vil beregne s.

Opret en if/else -sætning, der viser en konklusion baseret på værdien af p. Betingelsen for if -sætningen vil være p> 0,05. Da vi typisk ikke afviser nulhypotesen, når værdien af p er større end 0,05, skal du bruge kommandoen disp ('X') til at vise "Fordi p -værdien er større end 0,05, formår vi ikke at afvise nulhypotesen" og " Derfor undlader vi at afvise, at mængden af blodkar i en normal hjerne svarer til mængden af en hjerne med Moyamoya sygdom. " I den anden sætning, da vi typisk afviser nulhypotesen, når værdien af p er under 0,05, skal du bruge kommandoen disp ('X') til at vise "Fordi p -værdien er mindre end 0,05, afviser vi nulhypotesen" og " Derfor undlader vi at afvise, at mængden af blodkar i en normal hjerne ikke svarer til mængden af en hjerne med Moyamoya sygdom. " Afslut if/else -sætningen.

Anbefalede: