Indholdsfortegnelse:
- Trin 1: Find MR- og MRA -scanninger af en normal hjerne og en hjerne påvirket af Moyamoya
- Trin 2: Indlæs billeder i MATLAB, og tildel billeder til en variabel til visning af billeder
- Trin 3: Forbedre aflange strukturer i intensitetsbillede med multiskala filtrering
- Trin 4: Kør et 2D -medianfilter
- Trin 5: Masker billedet
- Trin 6: Vælg MRA -scanninger til statistisk testning
- Trin 7: Beregn arealet af blodkar i forberedelse til statistisk testning
- Trin 8: Kør en uafhængig prøve T-test
Video: Moyamoya billedbehandling: 8 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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
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
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
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
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
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
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
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
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:
Billedbehandling baseret på brandgenkendelse og slukker: 3 trin
Billedbehandling baseret på brandgenkendelse og slukningssystem: Hej venner, dette er et billedbehandlingsbaseret branddetekterings- og slukkersystem, der bruger Arduino
Billedbehandling med Raspberry Pi: Installation af OpenCV og billedfarveseparation: 4 trin
Billedbehandling med Raspberry Pi: Installation af OpenCV og billedfarveseparation: Dette indlæg er det første af flere tutorials til billedbehandling, der skal følges. Vi ser nærmere på de pixels, der udgør et billede, lærer at installere OpenCV på Raspberry Pi, og vi skriver også test scripts for at fange et billede og også c
DIY termisk billedbehandling infrarødt kamera: 3 trin (med billeder)
DIY termisk billedbehandling infrarødt kamera: Hej! Jeg leder altid efter nye projekter til mine fysiktimer. For to år siden stødte jeg på en rapport om den termiske sensor MLX90614 fra Melexis. Den bedste med kun 5 ° FOV (synsfelt) ville være egnet til et selvfremstillet termisk kamera. At læse
En introduktion til billedbehandling: Pixy og dens alternativer: 6 trin
En introduktion til billedbehandling: Pixy og dens alternativer: I denne artikel vil vi forklare betydningen af Digital Image Processing (DIP) og årsagerne til at bruge hardware som Pixy og andre værktøjer til at lave en proces på billeder eller videoer. I slutningen af denne artikel lærer du: Hvordan et digitalt billede dannes
Kvantimetrisk billedbehandling: 5 trin
Kvantimetrisk billedbehandling: (Ovenstående figur illustrerer sammenligning af eksisterende billedbehandlingsmetode med kvantimetrisk billedbehandling. Bemærk det forbedrede resultat. Billedet øverst til højre viser mærkelige artefakter, der stammer fra forkert antagelse om, at billeder måler sådan noget