Taula de continguts:

Processament d'imatges Moyamoya: 8 passos
Processament d'imatges Moyamoya: 8 passos

Vídeo: Processament d'imatges Moyamoya: 8 passos

Vídeo: Processament d'imatges Moyamoya: 8 passos
Vídeo: How To Do Stable Diffusion LORA Training By Using Web UI On Different Models - Tested SD 1.5, SD 2.1 2024, De novembre
Anonim
Processament d'imatges Moyamoya
Processament d'imatges Moyamoya

Moyamoya, "buf de fum", és una malaltia rara que es produeix pel bloqueig de les artèries als ganglis basals, que és una zona a la base del cervell. La malaltia és una malaltia cerebrovascular progressiva que afecta sobretot als nens. Els símptomes de moyamoya inclouen un ictus inicial, mini-ictus constants, debilitat muscular, paràlisi o convulsions com a conseqüència de l’estrenyiment progressiu de les artèries. Sense tractament, moyamoya causarà problemes de parla, discapacitat sensorial i danys en la consciència. En el nostre projecte, utilitzarem MATLAB per tal de preprocessar una imatge MRI o MRA mitjançant diversos filtres per reduir el soroll dins de la imatge i localitzar la zona afectada. A més, utilitzarem una millora de funcions per localitzar les zones afectades amb més precisió. A més, farem una prova t de mostres independents per determinar si hi ha una diferència significativa entre la quantitat de vasos sanguinis en un cervell normal en comparació amb un cervell afectat per moyamoya.

Pas 1: cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d'un cervell normal i d'un cervell afectat per Moyamoya

Cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d’un cervell normal i d’un cervell afectat per Moyamoya
Cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d’un cervell normal i d’un cervell afectat per Moyamoya
Cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d’un cervell normal i d’un cervell afectat per Moyamoya
Cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d’un cervell normal i d’un cervell afectat per Moyamoya
Cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d’un cervell normal i d’un cervell afectat per Moyamoya
Cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d’un cervell normal i d’un cervell afectat per Moyamoya
Cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d’un cervell normal i d’un cervell afectat per Moyamoya
Cerqueu ressonàncies de ressonància magnètica i ressonància magnètica d’un cervell normal i d’un cervell afectat per Moyamoya

Aquestes imatges són les exploracions que hem utilitzat per al projecte que hem trobat en línia. Les dues imatges amb els vasos sanguinis situats al centre són exploracions MRA, mentre que les altres dues imatges són exploracions RM.

Els següents enllaços són on es troben aquestes imatges:

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

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

Pas 2: carregueu imatges a MATLAB i assigneu imatges a una variable per mostrar imatges

Carregueu imatges a MATLAB i assigneu imatges a una variable per mostrar imatges
Carregueu imatges a MATLAB i assigneu imatges a una variable per mostrar imatges

Per començar el procés, comenceu per netejar la finestra d'ordres, tanqueu totes les figures i gràfics possibles que ja estiguin oberts i esborreu les variables ja assignades a l'espai de treball.

Després, creeu un bucle for d'1 a 2 mitjançant l'ordre i = [1: 2]

Després, carregueu les imatges MRA mitjançant l'ordre imread (sprintf ('filename%.filetype', i)) per llegir les imatges dels fitxers especificats pel nom del fitxer seguit del número utilitzat per al bucle mitjançant sprintf per a la càrrega per lots i assigneu a una variable.

A continuació, per mostrar la imatge en una figura, utilitzeu l'ordre imshow (I).

Per assignar un mapa de colors gris, utilitzeu l'ordre mapa de colors (gris).

Per eliminar completament el color i convertir la matriu 3D de les imatges en 2D, utilitzeu l'ordre rgb2gray (I) i assigneu-la a una variable independent.

A continuació, carregueu les imatges de ressonància magnètica mitjançant l'ordre indicada anteriorment o imread (sprintf ('filename%.filetype', i)) i assigneu-la a una nova variable

Repetiu l'ordre rgb2gray amb la nova variable que s'utilitza per a les imatges de ressonància magnètica.

Si cal, podeu canviar la mida de la imatge mitjançant l'ordre imresize (A, escala) i assignar-la a una variable independent.

Pas 3: Milloreu les estructures allargades de la imatge d'intensitat amb filtratge multiescala

Millorar les estructures allargades de la imatge d’intensitat amb filtratge multiescala
Millorar les estructures allargades de la imatge d’intensitat amb filtratge multiescala

Utilitzant una nova variable, utilitzeu l'ordre fibermètric (A) per millorar les estructures tubulars de les imatges

Amb la variable anterior, utilitzeu l'ordre histeq (B) per millorar les igualacions de l'histograma transformant la intensitat de les imatges i assigneu-la a una nova variable.

Mostra l'histograma amb l'ordre imhist (B)

Creeu una variable nova per crear un llindar per al filtre. En aquest cas, assigneu la variable anterior> 0,875, filtrant la intensitat de píxels per sota del valor de 0,875

Després, creeu una nova figura i utilitzeu l'ordre imshow (A) per mostrar la nova imatge filtrada.

Pas 4: executeu un filtre mitjà 2D

Executeu un filtre mitjà 2D
Executeu un filtre mitjà 2D

Amb l'ordre medfilt2 (A, [m n]), executeu un filtre mitjà 2D, on cada píxel de sortida conté el valor mitjà al límit mxn al voltant del píxel respectiu de la imatge d'entrada.

Creeu una figura nova i utilitzeu imshow (A) per mostrar la imatge filtrada mitjana.

Pas 5: emmascarar la imatge

Enmascara la imatge
Enmascara la imatge

Utilitzant la imatge filtrada mitjana, utilitzeu l'ordre [labeledImage, numberOfBlots] = bwlabel (A) per comptar el nombre de taques blanques de la imatge

A continuació, utilitzeu la funció d’atrezzo de la regió states = regionprops (labeledImage, ‘Area’) per calcular les àrees de cada borró o vas sanguini

Assigneu totes les àrees en una variable

A continuació, utilitzant una altra variable, compteu el nombre de borrons que superin els 50 píxels

Després, ordeneu els esborrats que siguin inferiors a 50 píxels en ordre descendent mitjançant l'ordre [sortedAreas, sortedIndicies] = ordenar (Àrees, "descendir")

A continuació, utilitzant una altra variable, utilitzeu l'ordre ismember (labeledImage, sortedIndicies (1: numberToExtract)) per retornar una matriu amb elements de labeledImage que es troba a sortedIndicies des del número 1 fins al nombre de vasos sanguinis per retornar un 1 lògic (cert) o un 0 lògic (fals).

Amb la variable del pas anterior, cerqueu els punts certs (valors> 0) i creeu una matriu lògica per fer una imatge binària i assignar-la a una nova variable.

Creeu una nova figura i utilitzeu imshow (A) la nova imatge binària.

A continuació, invertiu la imatge mitjançant l'ordre complement (A) i assigneu-la a una variable diferent.

Per crear una imatge emmascarada, utilitzeu una nova variable amb l'ordre resizedimage. * Uint8 (invertedimage)

Creeu una figura nova i utilitzeu imshow (A) per mostrar la imatge emmascarada.

Per finalitzar tot el codi, assegureu-vos d'utilitzar l'ordre "final" per finalitzar tot el bucle for

Pas 6: seleccioneu les exploracions MRA per a proves estadístiques

Seleccioneu els escaneigs MRA per a proves estadístiques
Seleccioneu els escaneigs MRA per a proves estadístiques
Seleccioneu els escaneigs MRA per a proves estadístiques
Seleccioneu els escaneigs MRA per a proves estadístiques
Seleccioneu els escaneigs MRA per a proves estadístiques
Seleccioneu els escaneigs MRA per a proves estadístiques

Per preparar-vos per a proves estadístiques, seleccioneu les exploracions MRA que s’utilitzaran per a la prova t de mostres independents. Com que les nostres dues mostres seran afectades pels cervells de Moyamoya i els cervells normals, seleccioneu una quantitat decent d’exploracions MRA de cada grup.

Pas 7: calculeu l'àrea de vasos sanguinis en preparació per a proves estadístiques

Calculeu l'àrea de vasos sanguinis en la preparació per a proves estadístiques
Calculeu l'àrea de vasos sanguinis en la preparació per a proves estadístiques

La prova estadística se centrarà en la longitud o la quantitat de vasos sanguinis que es mostren a les exploracions MRA. Per tant, hem de calcular l'àrea dels vasos sanguinis abans de la comparació.

Comenceu filtrant els ARM dels cervells normals i calculant la quantitat de vasos sanguinis. Per fer-ho, executeu un bucle for. Com que hi ha tres imatges, la condició serà i = [1: 3].

Obriu la imatge amb l'ordre imread i assigneu-la a una variable.

A continuació, creeu una sentència if / else amb l'ordre if, else. Per a la sentència if, utilitzeu la mida de l'ordre (A, 3) == 3, on A és la variable que s'utilitza per obrir la imatge, per crear una sentència if per a quan la tercera dimensió de la matriu sigui 3. A continuació, convertiu la imatge a 2D i desfeu-vos del color mitjançant l'ordre rgb2gray (A) i assigneu-lo a una nova variable. Utilitzeu l'ordre imresize (A, [m n]) per canviar la mida de la imatge. En aquest cas, hem redimensionat les imatges a una matriu de 1024 x 1024. Per millorar les estructures tubulars de la imatge, torneu a utilitzar l'ordre fibermètric i assigneu-lo a una nova variable.

El següent és per a la declaració else. Si la imatge no és una matriu 3D, volem ometre la conversió. Feu el mateix que la sentència if, però sense l'ordre rgb2gray (A).

Creeu una variable nova, establint-la igual a la variable del pas fibermètric superior a 0,15. Això limita la imatge per a intensitats superiors a 0,15.

Repetirem les línies de codis dels passos 4 i 5 de la instrucció des de la línia de filtre mediana fins a la línia imshow (I). Després, utilitzeu l'ordre sum (I (:)) per sumar tots els píxels que formen els vasos sanguinis i assigneu-lo a una variable independent. Anomeneu una nova variable NormalBloodVessels (i) i establiu-la igual a la variable de l'ordre sum (I (:)). Això afegeix les dades a la matriu.

Acabeu el bucle i repetiu, però per als ARM dels cervells afectats per Moyamoya. Anomeneu la variable al final MoyaMoyaBloodVessels (i) per no confondre-la amb els ARM cerebrals normals.

Pas 8: executeu una prova T de mostres independents

Realitzeu una prova de mostres independents
Realitzeu una prova de mostres independents

Com que hi ha dues mostres independents i una població petita, feu una prova t de mostres independents.

Creeu i anomeneu una funció que executi una prova t de mostres independents per determinar si la quantitat de vasos sanguinis dels ARM dels cervells normals és significativament igual o no a la dels ARM dels cervells afectats per Moyamoya.

Mostra la hipòtesi establerta per a la prova mitjançant l'ordre disp ('X'). A la primera línia, mostreu "Prova d'hipòtesis per a dues mostres". A la segona línia, mostreu "H0 = La quantitat de vasos sanguinis d'un cervell normal és igual a la quantitat de vasos sanguinis d'un cervell amb malaltia de Moyamoya", per indicar la hipòtesi nul·la. A la tercera línia, mostreu "HA = La quantitat de vasos sanguinis d'un cervell normal no és igual a la quantitat de vasos sanguinis d'un cervell amb malaltia de Moyamoya". per exposar la hipòtesi alternativa.

Utilitzant un interval de confiança del 95% i una mida de mostra de 3, calculeu la puntuació t mitjançant l'ordre tinv ([0,025 0,975], 2) i assigneu-la a la variable t. Utilitzeu l'ordre var (NormalBloodVessels) i var (MoyaMoyaBloodVessels) i assigneu-los a variables per calcular les variàncies d'ambdós conjunts de dades.

Comproveu si les variàncies són o no iguals. Feu això creant una sentència if / else amb l'ordre if, else. Per a la condició de la sentència if, escriviu A / B == [0,25: 4], on A és la variable que explica la variància dels vasos sanguinis normals i B és la variable que explica la variància dels vasos sanguinis Moyamoya. 0,25 i 4 provenen d'una estimació general per determinar si les variàncies són iguals o no. A continuació, executeu la prova de dues mostres t amb [h, p] = ttest2 (A, B, 0,05, "tots dos", "iguals"), sent A i B les mateixes variables que es van esmentar anteriorment. Per a la sentència else, utilitzeu [h, p] = ttest2 (A, B, 0,05, 'ambdós', 'desigual') per executar una prova de dues mostres t en el cas que les variàncies no siguin iguals. Finalitzeu la sentència if / else. Això calcularà la p.

Creeu una sentència if / else que mostrarà una conclusió basada en el valor de p. La condició de la sentència if serà p> 0,05. Com que normalment no rebutgem la hipòtesi nul·la quan el valor de p és superior a 0,05, utilitzeu l'ordre disp ('X') per mostrar "Com que el valor p és superior a 0,05, no rebutgem la hipòtesi nul·la" i " Per tant, no rebutgem que la quantitat de vasos sanguinis d'un cervell normal sigui igual a la d'un cervell amb la malaltia de Moyamoya ". A la sentència else, ja que normalment rebutgem la hipòtesi nul·la quan el valor de p és inferior a 0,05, utilitzeu l'ordre disp ('X') per mostrar "Com que el valor p és inferior a 0,05, rebutgem la hipòtesi nul·la" i " Per tant, no rebutgem que la quantitat de vasos sanguinis d'un cervell normal no sigui igual a la d'un cervell amb la malaltia de Moyamoya ". Finalitzeu la sentència if / else.

Recomanat: