Taula de continguts:
- 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
- Pas 2: carregueu imatges a MATLAB i assigneu imatges a una variable per mostrar imatges
- Pas 3: Milloreu les estructures allargades de la imatge d'intensitat amb filtratge multiescala
- Pas 4: executeu un filtre mitjà 2D
- Pas 5: emmascarar la imatge
- Pas 6: seleccioneu les exploracions MRA per a proves estadístiques
- Pas 7: calculeu l'àrea de vasos sanguinis en preparació per a proves estadístiques
- Pas 8: executeu una prova T de mostres independents
Vídeo: Processament d'imatges Moyamoya: 8 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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
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
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
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
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
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
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
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
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:
Sistema de reconeixement i extintor basat en processament d’imatges: 3 passos
Sistema de reconeixement i extintor d'incendis basat en el processament d'imatges: Hola amics, aquest és un sistema d'extintor i detecció d'incendis basat en el processament d'imatges que utilitza Arduino
Processament d’imatges amb el Raspberry Pi: instal·lació d’OpenCV i separació del color de la imatge: 4 passos
Processament d’imatges amb el Raspberry Pi: instal·lació d’OpenCV i separació de color d’imatges: aquest post és el primer dels diversos tutorials de processament d’imatges que s’han de seguir. Analitzem de prop els píxels que formen una imatge, aprenem a instal·lar OpenCV al Raspberry Pi i també escrivim scripts de prova per capturar una imatge i també
SCARA Robot: Aprendre sobre Foward i la cinemàtica inversa !!! (Plot Twist Aprèn a fer una interfície en temps real a ARDUINO mitjançant PROCESSAMENT !!!!): 5 passos (amb imatges)
SCARA Robot: Aprendre sobre Foward i la cinemàtica inversa !!! (Plot Twist Aprèn a fer una interfície en temps real a ARDUINO mitjançant el processament !!!!): Un robot SCARA és una màquina molt popular al món de la indústria. El nom significa tant el braç de robot de muntatge selectiu que compleix com el braç de robot articulat que compleix selectivament. Bàsicament és un robot de tres graus de llibertat, sent els dos primers desplaçaments
Cúpula LED interactiva amb Fadecandy, processament i Kinect: 24 passos (amb imatges)
Cúpula LED interactiva amb Fadecandy, Processing i Kinect: WhatWhen in Dome és una cúpula geodèsica de 4,2 m coberta amb 4378 LED. Tots els LED es poden assignar de manera individual i direccionables. Estan controlats per Fadecandy i Processing en un escriptori de Windows. Un Kinect està unit a un dels puntals de la cúpula, així que mo
Gesture Hawk: robot controlat amb gestos manuals mitjançant la interfície basada en el processament d’imatges: 13 passos (amb imatges)
Gesture Hawk: robot controlat amb gestos manuals mitjançant interfície basada en el processament d’imatges: Gesture Hawk es va mostrar a TechEvince 4.0 com una interfície simple màquina basada en el processament d’imatges. La seva utilitat rau en el fet que no es requereixen cap sensor addicional ni un dispositiu portàtil, excepte un guant, per controlar el cotxe robòtic que funciona amb diferents