Innholdsfortegnelse:

Moyamoya Bildebehandling: 8 trinn
Moyamoya Bildebehandling: 8 trinn

Video: Moyamoya Bildebehandling: 8 trinn

Video: Moyamoya Bildebehandling: 8 trinn
Video: How To Do Stable Diffusion LORA Training By Using Web UI On Different Models - Tested SD 1.5, SD 2.1 2024, November
Anonim
Moyamoya Bildebehandling
Moyamoya Bildebehandling

Moyamoya, "røykpust", er en sjelden sykdom som er forårsaket av blokkering av arterier ved basalganglier, som er et område ved hjernefoten. Sykdommen er en progressiv cerebrovaskulær sykdom som for det meste rammer barn. Symptomer på moyamoya inkluderer et innledende slag, konstante minislag, muskelsvakhet, lammelse eller anfall som følge av progressiv innsnevring av arterier. Uten behandling vil moyamoya forårsake problemer med tale, sensorisk svekkelse og skadet bevissthet. I vårt prosjekt vil vi bruke MATLAB for å forhåndsbehandle et MR- eller MRA -bilde ved hjelp av forskjellige filtre for å redusere støy i bildet for å lokalisere det berørte området. I tillegg vil vi bruke en funksjonsforbedring for å finne de berørte områdene mer presist. Videre vil vi deretter kjøre en uavhengig t-test for å avgjøre om det er en signifikant forskjell mellom mengden blodkar i en normal hjerne sammenlignet med en hjerne påvirket av moyamoya.

Trinn 1: Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya

Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya
Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya
Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya
Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya
Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya
Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya
Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya
Finn MR- og MRA -skanninger av en normal hjerne og en hjerne påvirket av Moyamoya

Disse bildene er skannene vi brukte for prosjektet som vi fant på nettet. De to bildene med blodårene i midten er MRA -skanninger, mens de to andre bildene er MR -skanninger.

Følgende lenker er der disse bildene finnes:

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

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

Trinn 2: Last inn bilder på MATLAB og tilordne bilder til en variabel for å vise bilder

Last inn bilder på MATLAB og tilordne bilder til en variabel for å vise bilder
Last inn bilder på MATLAB og tilordne bilder til en variabel for å vise bilder

For å starte prosessen, begynn med å tømme kommandovinduet, lukk alle mulige figurer og grafer som allerede er åpne, og slett variabler som allerede er tilordnet i arbeidsområdet.

Lag deretter en for -løkke fra 1 til 2 ved å bruke kommandoen i = [1: 2]

Last deretter MRA -bildene ved hjelp av kommandoen imread (sprintf ('filnavn%.filetype', i)) for å lese bildene fra filene som er angitt av filnavnet etterfulgt av nummeret som brukes for løkken ved å bruke sprintf for batch lasting og tildele det til en variabel.

Deretter bruker du kommandoen imshow (I) for å vise bildet i en figur.

For å tilordne et grått fargekart, bruk kommandoen colormap (grå).

For å fullstendig eliminere farge og konvertere 3D -matrisen for bildene til 2D, bruk kommandoen rgb2gray (I) og tilordne den til en egen variabel.

Last deretter inn MR -bildene ved å bruke kommandoen som er angitt tidligere eller imread (sprintf ('filnavn%.filetype', i)) og tilordne den til en ny variabel

Gjenta kommandoen rgb2gray med den nye variabelen som brukes for MR -bildene.

Om nødvendig kan du endre størrelsen på et bilde ved hjelp av kommandoen imresize (A, skala) og tilordne en egen variabel.

Trinn 3: Forbedre langstrakte strukturer i intensitetsbilde med multiskala filtrering

Forbedre forlengede strukturer i intensitetsbilde med multiskala -filtrering
Forbedre forlengede strukturer i intensitetsbilde med multiskala -filtrering

Bruk en ny variabel, bruk kommandoen fibermetrisk (A) for å forbedre de rørformede strukturene i bildene

Med den forrige variabelen bruker du kommandoen histeq (B) for å forbedre histogramutjevningene ved å transformere bildens intensitet og tilordne den til en ny variabel.

Vis histogrammet med kommandoen imhist (B)

Opprett en ny variabel for å lage en terskel for filteret. I dette tilfellet tilordner du den forrige variabelen> 0,875, og filtrerer bort pikselintensiteten under verdien 0,875

Lag deretter en ny figur og bruk kommandoen imshow (A) for å vise det nye filtrerte bildet.

Trinn 4: Kjør et 2D medianfilter

Kjør et 2D medianfilter
Kjør et 2D medianfilter

Bruk kommandoen medfilt2 (A, [m n]), kjør et 2D medianfilter, hvor hver utgangspiksel inneholder medianverdien i mxn -grensen rundt den respektive piksel i inngangsbildet.

Lag en ny figur og bruk imshow (A) for å vise medianfiltrert bilde.

Trinn 5: Masker bildet

Masker bildet
Masker bildet

Bruk median filtrert bilde, bruk kommandoen [labeledImage, numberOfBlots] = bwlabel (A) for å telle antall hvite flekker i bildet

Deretter bruker du regionstøttefunksjonstilstandene = regionprops (labeledImage, 'Area') for å beregne områdene til hver flekk eller blodkar

Tilordne alle områdene til en variabel

Deretter bruker du en annen variabel, og teller antall blotter som overstiger 50 piksler

Deretter sorterer du ut blotter som er under 50 piksler i synkende rekkefølge ved å bruke kommandoen [sortedAreas, sortedIndicies] = sort (Areas, 'descend')

Deretter bruker du en annen variabel med kommandoen ismember (labeledImage, sortedIndicies (1: numberToExtract)) for å returnere en matrise med elementer av labeledImage som finnes i sortedIndicies fra nummer 1 til antall blodkar for å returnere en logisk 1 (true) eller en logisk 0 (usann).

Med variabelen i forrige trinn, finn punktene som er sanne (verdier> 0) og lag en logisk matrise for å lage et binært bilde og tilordne det til en ny variabel.

Lag en ny figur og bruk imshow (A) det nye binære bildet.

Vend deretter bildet ved hjelp av kommandoimplementering (A) og tilordne det til en annen variabel.

For å lage et maskert bilde, bruk en ny variabel med kommandoen resizedimage.*Uint8 (invertedimage)

Lag en ny figur og bruk imshow (A) for å vise maskerte bilder.

For å avslutte hele koden, må du bruke kommandoen 'end' for å avslutte hele for loop

Trinn 6: Velg MRA -skanninger for statistisk testing

Velg MRA -skanninger for statistisk testing
Velg MRA -skanninger for statistisk testing
Velg MRA -skanninger for statistisk testing
Velg MRA -skanninger for statistisk testing
Velg MRA -skanninger for statistisk testing
Velg MRA -skanninger for statistisk testing

For å forberede deg på statistisk testing, velg MRA-skanningene som skal brukes for de uavhengige prøvene t-testen. Fordi våre to prøver vil være hjerner som påvirkes av Moyamoya og vanlige hjerner, velger du en anstendig mengde MRA -skanninger fra hver gruppe.

Trinn 7: Beregn området for blodkar i forberedelse til statistisk testing

Beregn området for blodkar i forberedelse til statistisk testing
Beregn området for blodkar i forberedelse til statistisk testing

Den statistiske testen vil fokusere på lengden eller mengden av blodkar vist på MRA -skanninger. Derfor må vi beregne arealet av blodårene før sammenligning.

Start med å filtrere MRAene til normale hjerner og beregne mengden blodkar. For å gjøre dette, kjør en for loop. Fordi det er tre bilder, vil tilstanden være i = [1: 3].

Åpne bildet med kommandoen imread og tilordne det til en variabel.

Deretter lager du en if/else -setning med kommandoen if, else. For if -setningen bruker du kommandostørrelsen (A, 3) == 3, der A er variabelen som brukes til å åpne bildet, for å lage en if -setning for når den tredje dimensjonen i matrisen er 3. Konverter deretter bildet til 2D og bli kvitt fargen ved å bruke kommandoen rgb2gray (A) og tilordne den til en ny variabel. Bruk kommandoen imresize (A, [m n]) for å endre størrelsen på bildet. I dette tilfellet endret vi størrelsen på bildene til 1024 x 1024 matrise. For å forbedre bildens rørformede strukturer, bruk den fibermetriske kommandoen igjen, og tilordne den til en ny variabel.

Følgende er for den andre uttalelsen. Hvis bildet ikke er en 3D -matrise, ønsker vi å hoppe over konvertering. Gjør det samme som if -setningen, men uten kommandoen rgb2gray (A).

Lag en ny variabel, og sett den til variabelen fra det fibermetriske trinnet større enn 0,15. Dette terskler bildet for intensiteter større enn 0,15.

Vi vil gjenta kodelinjene fra trinn 4 og 5 i instruksjonene fra medianfilterlinjen til imshow (I) -linjen. Etterpå bruker du kommandosummen (I (:)) til å legge opp alle pikslene som utgjør blodkar, og tilordne den til en egen variabel. Navngi en ny variabel NormalBloodVessels (i) og sett den lik variabelen fra summen (I (:)) kommandoen. Dette legger dataene til matrisen.

Avslutt sløyfen og gjenta, men for MRAene i hjernen som er berørt av Moyamoya. Navngi variabelen til slutt MoyaMoyaBloodVessels (i) for ikke å forveksle den med de normale hjernens MRA.

Trinn 8: Kjør en Independent Samples T-test

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

Siden det er to uavhengige prøver og en liten populasjon, kjør du en uavhengig t-test.

Lag og navngi en funksjon som kjører en uavhengig t-test for å avgjøre om mengden blodkar i MRAene til normale hjerner er signifikant lik eller ikke den for MRAer i hjerner påvirket av Moyamoya.

Vis hypotesen som er satt for testen ved å bruke kommandoen disp ('X'). På første linje vises "Hypoteser for to prøver t -test." På den andre linjen vises "H0 = Mengden blodkar i en normal hjerne tilsvarer mengden blodårer i en hjerne med Moyamoya sykdom", for å angi nullhypotesen. På den tredje linjen vises "HA = Mengden blodkar i en normal hjerne tilsvarer ikke mengden blodårer i en hjerne med Moyamoya sykdom." å oppgi den alternative hypotesen.

Bruk et 95% konfidensintervall og en prøvestørrelse på 3, beregne t -poengsummen ved å bruke kommandoen tinv ([0.025 0.975], 2) og tilordne variabel t. Bruk kommandoen var (NormalBloodVessels) og var (MoyaMoyaBloodVessels) og tilordne dem til variabler for å beregne avvikene til begge datasettene.

Sjekk om avvikene er nær like eller ikke. Gjør dette ved å opprette en if/else -setning med kommandoen if, else. For tilstanden i if -setningen, skriv A / B == [0.25: 4], der A er variabelen som står for variansen til normale blodkar og B er variabelen som står for variansen til Moyamoya -blodårene. 0,25 og 4 kommer fra et generelt estimat for å avgjøre om avvik er like eller ikke. Kjør deretter den to prøven t -testen med [h, p] = ttest2 (A, B, 0,05, 'begge', 'like'), med A og B som de samme variablene som nevnt tidligere. For den andre setningen, bruk [h, p] = ttest2 (A, B, 0,05, 'begge', 'ulik') for å kjøre en to prøve t -test i tilfelle hvor avvikene ikke er like. Avslutt if/else -setningen. Dette vil beregne s.

Lag en if/else -setning som viser en konklusjon basert på verdien av p. Betingelsen for if -setningen vil være p> 0,05. Siden vi vanligvis ikke klarer å avvise nullhypotesen når verdien av p er større enn 0,05, bruker du kommandoen disp ('X') til å vise "Fordi p -verdien er større enn 0,05, klarer vi ikke å avvise nullhypotesen" og " Derfor unnlater vi å avvise at mengden blodkar i en normal hjerne er lik mengden i en hjerne med Moyamoya sykdom. " I den andre setningen, siden vi vanligvis avviser nullhypotesen når verdien av p er under 0,05, bruker du kommandoen disp ('X') for å vise "Fordi p -verdien er mindre enn 0,05, avviser vi nullhypotesen" og " Derfor unnlater vi å avvise at mengden blodkar i en normal hjerne ikke er lik mengden til en hjerne med Moyamoya sykdom. " Avslutt if/else -setningen.

Anbefalt: