Përmbajtje:
- Hapi 1: Gjeni skanime MRI dhe MRA të një truri normal dhe një tru të prekur me Moyamoya
- Hapi 2: Ngarkoni imazhet në MATLAB dhe caktoni imazhe në një variabël për të shfaqur imazhe
- Hapi 3: Përmirësoni strukturat e zgjatura në imazhin me intensitet me filtrim në shumë shkallë
- Hapi 4: Drejtoni një filtër mesatar 2D
- Hapi 5: Maskoni imazhin
- Hapi 6: Zgjidhni Skanimet MRA për Testimin Statistikor
- Hapi 7: Llogaritni sipërfaqen e enëve të gjakut në përgatitje për testimin statistikor
- Hapi 8: Drejtoni një T-Test të Mostrave të Pavarur
Video: Përpunimi i imazhit Moyamoya: 8 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Moyamoya, "fryrja e tymit", është një sëmundje e rrallë që shkaktohet nga bllokimi i arterieve në ganglionet bazale, e cila është një zonë në bazën e trurit. Sëmundja është një sëmundje progresive cerebrovaskulare që prek më së shumti fëmijët. Simptomat e moyamoya përfshijnë një goditje fillestare, mini-goditje të vazhdueshme, dobësi muskulare, paralizë ose konfiskime si rezultat i ngushtimit progresiv të arterieve. Pa trajtim, moyamoya do të shkaktojë probleme me të folurin, dëmtim ndijor dhe dëmtim të vetëdijes. Në projektin tonë, ne do të përdorim MATLAB në mënyrë që të përpunojmë paraprakisht një imazh MRI ose MRA duke përdorur filtra të ndryshëm për të zvogëluar zhurmën brenda figurës për të gjetur zonën e prekur. Përveç kësaj, ne do të përdorim një përmirësim të veçorive për të gjetur zonat e prekura më saktë. Për më tepër, atëherë ne do të kryejmë një test të pavarur t-test për të përcaktuar nëse ekziston një ndryshim i rëndësishëm midis sasisë së enëve të gjakut në një tru normal në krahasim me një tru të prekur nga moyamoya.
Hapi 1: Gjeni skanime MRI dhe MRA të një truri normal dhe një tru të prekur me Moyamoya
Këto imazhe janë skanimet që kemi përdorur për projektin që kemi gjetur në internet. Dy imazhet me enët e gjakut të vendosura në mes janë skanime MRA, ndërsa dy imazhet e tjera janë skanime MRI.
Lidhjet e mëposhtme janë aty ku gjenden këto imazhe:
static.cambridge.org/resource/id/urn:cambr…
static.cambridge.org/resource/id/urn:cambr…
Hapi 2: Ngarkoni imazhet në MATLAB dhe caktoni imazhe në një variabël për të shfaqur imazhe
Për të filluar procesin, filloni duke pastruar dritaren e komandës, mbyllni të gjitha figurat dhe grafikët e mundshëm që mund të jenë tashmë të hapur dhe pastroni ndryshoret e caktuara tashmë në hapësirën tuaj të punës.
Pas kësaj, krijoni një lak për 1 nga 2 duke përdorur komandën i = [1: 2]
Pas kësaj, ngarkoni imazhet MRA duke përdorur komandën imread (sprintf ('emri i skedarit%.filetype', i)) për të lexuar imazhet nga skedarët e specifikuar me emrin e skedarit të ndjekur nga numri i përdorur për lakun duke përdorur sprintf për ngarkimin dhe caktimin e serisë atë në një ndryshore.
Pastaj për të shfaqur imazhin në një figurë, përdorni komandën imshow (I).
Për të caktuar një hartë me ngjyrë gri, përdorni komandën kolormap (gri).
Për të eleminuar plotësisht ngjyrën dhe konvertuar matricën 3D për imazhet në 2D, përdorni komandën rgb2gray (I) dhe caktojeni atë në një ndryshore të veçantë.
Pastaj ngarkoni imazhet MRI duke përdorur komandën e deklaruar më parë ose imread (sprintf ('filename%.filetype', i)) dhe caktojeni në një ndryshore të re
Përsëriteni komandën rgb2gray me ndryshoren e re të përdorur për imazhet MRI.
Nëse është e nevojshme, mund të ndryshoni madhësinë e një imazhi duke përdorur komandën imresize (A, shkallë) dhe t'i caktoni një ndryshore të veçantë.
Hapi 3: Përmirësoni strukturat e zgjatura në imazhin me intensitet me filtrim në shumë shkallë
Duke përdorur një ndryshore të re, përdorni komandën fibermetric (A) për të përmirësuar strukturat tubulare në imazhe
Me ndryshoren e mëparshme, përdorni komandën histeq (B) për të rritur barazimet e histogramit duke transformuar intensitetin e imazheve dhe caktojeni atë në një ndryshore të re.
Shfaq histogramin duke përdorur komandën imhist (B)
Krijoni një ndryshore të re për të krijuar një prag për filtrin. Në këtë rast caktoni ndryshoren e mëparshme> 0.875, duke filtruar intensitetin e pikselit nën vlerën 0.875
Pas kësaj, krijoni një figurë të re dhe përdorni komandën imshow (A) për të shfaqur imazhin e ri të filtruar.
Hapi 4: Drejtoni një filtër mesatar 2D
Duke përdorur komandën medfilt2 (A, [m n]), drejtoni një filtër mesatar 2D, ku çdo piksel dalës përmban vlerën mesatare në kufirin mxn rreth pikselit përkatës në imazhin hyrës.
Krijoni një figurë të re dhe përdorni imshow (A) për të shfaqur imazhin e filtruar mesatar.
Hapi 5: Maskoni imazhin
Duke përdorur imazhin mesatar të filtruar, përdorni komandën [emërtuarImage, numberOfBlots] = bwlabel (A) për të numëruar numrin e njollave të bardha në imazh
Pastaj, përdorni gjendjet e funksioneve të rajonit props = regionprops (etiketuarImage, 'Area') për të llogaritur zonat e secilës njollë ose enë gjaku
Caktoni të gjitha zonat në një ndryshore
Pastaj duke përdorur një ndryshore tjetër, numëroni numrin e njollave që tejkalojnë 50 piksele
Më pas, renditni çdo njollë që është nën 50 pikselë në rend zbritës duke përdorur komandën [sortedAreas, sortedIndicies] = renditje (Zonat, 'zbritja')
Pastaj, duke përdorur një ndryshore tjetër, përdorni komandën ismember (etiketuarImage, sortedIndicies (1: numberToExtract)) për të kthyer një grup me elementë të etiketuarImage gjenden në renditjet Indikat nga numri 1 në numrin e enëve të gjakut për të kthyer një logjike 1 (e vërtetë) ose një 0 logjik (i rremë).
Me ndryshoren në hapin e mëparshëm, gjeni pikat që janë të vërteta (vlerat> 0) dhe krijoni një grup logjik për të bërë një imazh binar dhe caktojeni atë një ndryshoreje të re.
Krijoni një figurë të re dhe përdorni imshow (A) imazhin e ri binar.
Pastaj, përmbysni imazhin duke përdorur komplementin komandues (A) dhe caktojeni atë në një ndryshore të ndryshme.
Për të krijuar një imazh të maskuar, përdorni një ndryshore të re me madhësinë e komandës në imazh.*Uint8 (invertedimage)
Krijoni një figurë të re dhe përdorni imshow (A) për të shfaqur imazhin e maskuar.
Për t'i dhënë fund të gjithë kodit, sigurohuni që të përdorni komandën 'fund' për t'i dhënë fund të gjithë lakut
Hapi 6: Zgjidhni Skanimet MRA për Testimin Statistikor
Për t'u përgatitur për testimin statistikor, zgjidhni skanimet MRA që do të përdoren për t-testin e mostrave të pavarura. Për shkak se dy mostrat tanë do të ndikojnë në trurin Moyamoya, dhe trurin normal, zgjidhni një sasi të mirë të skanimeve MRA të secilit grup.
Hapi 7: Llogaritni sipërfaqen e enëve të gjakut në përgatitje për testimin statistikor
Testi statistikor do të përqëndrohet në gjatësinë ose sasinë e enëve të gjakut të treguara në skanimet MRA. Kështu, ne duhet të llogarisim sipërfaqen e enëve të gjakut para krahasimit.
Filloni duke filtruar MRA të trurit normal dhe duke llogaritur sasinë e enëve të gjakut. Për ta bërë këtë, drejtoni një lak for. Meqenëse ka tre imazhe, gjendja do të jetë i = [1: 3].
Hapni imazhin me komandën imread dhe caktojeni atë një ndryshoreje.
Tjetra, krijoni një deklaratë if/else me komandën if, else. Për deklaratën if, përdorni madhësinë e komandës (A, 3) == 3, ku A është ndryshorja e përdorur për t'u hapur në imazh, për të krijuar një deklaratë if për kur dimensioni i tretë i grupit është 3. Pastaj konvertoni imazhin në 2D dhe hiqni qafe ngjyrën duke përdorur komandën rgb2gray (A) dhe caktojeni atë një ndryshoreje të re. Përdorni komandën imresize (A, [m n]) për të ndryshuar madhësinë e figurës. Në këtë rast, ne i ndryshuam madhësinë e imazheve në një matricë 1024 x 1024. Për të përmirësuar strukturat tubulare të figurës, përdorni përsëri komandën fibometrike dhe caktojeni atë në një ndryshore të re.
Më poshtë është për deklaratën tjetër. Nëse imazhi nuk është një matricë 3D, ne duam të kalojmë konvertimin. Bëni të njëjtën gjë si deklarata if, por pa komandën rgb2gray (A).
Krijoni një ndryshore të re, duke e vendosur atë të barabartë me ndryshoren nga hapi fibrik metrikal më i madh se 0.15. Ky është pragu i imazhit për intensitet më të madh se 0.15.
Ne do të përsërisim linjat e kodeve nga hapat 4 dhe 5 të udhëzueshëm nga linja mesatare e filtrit deri në vijën e shfaqjes (I). Më pas, përdorni komandën sum (I (:)) për të shtuar të gjitha pikselët që përbëjnë enët e gjakut dhe caktojeni atë në një ndryshore të veçantë. Emërtoni një ndryshore të re NormalBloodVessels (i) dhe vendoseni të barabartë me ndryshoren nga komanda sum (I (:)). Kjo shton të dhënat në matricë.
Përfundoni lakin dhe përsëriteni por për MRA -të e trurit të prekur nga Moyamoya. Emërtoni ndryshoren në fund MoyaMoyaBloodVessels (i) për të mos e ngatërruar atë me MRA -të normale të trurit.
Hapi 8: Drejtoni një T-Test të Mostrave të Pavarur
Meqenëse ekzistojnë dy mostra të pavarura dhe një popullsi e vogël, bëni një test t-test të pavarur.
Krijoni dhe emërtoni një funksion që drejton një test të pavarur t-test për të përcaktuar nëse sasia e enëve të gjakut në MRA të trurit normal janë dukshëm të barabarta ose jo me atë të MRA të trurit të prekur nga Moyamoya.
Shfaqni hipotezën e vendosur për testin duke përdorur komandën disp ('X'). Në rreshtin e parë, shfaqni, "Hipotezat për dy mostra t test." Në rreshtin e dytë, shfaqni, "H0 = Sasia e enëve të gjakut të një truri normal është e barabartë me sasinë e enëve të gjakut të trurit me sëmundjen Moyamoya", për të deklaruar hipotezën zero. Në rreshtin e tretë, shfaqni, "HA = Sasia e enëve të gjakut të një truri normal nuk barazohet me sasinë e enëve të gjakut të trurit me sëmundjen Moyamoya." për të shprehur hipotezën alternative.
Duke përdorur një interval besueshmërie 95% dhe një madhësi mostre prej 3, llogaritni rezultatin t duke përdorur komandën tinv ([0,025 0,975], 2) dhe caktojini ndryshores t. Përdorni komandën var (NormalBloodVessels) dhe var (MoyaMoyaBloodVessels) dhe caktojini ato variablave për të llogaritur variancat e të dy grupeve të të dhënave.
Kontrolloni nëse variancat janë afër barabarta apo jo. Bëni këtë duke krijuar një deklaratë if/else me komandën if, else. Për gjendjen në deklaratën if, shkruani A / B == [0.25: 4], ku A është variabla që llogarit variancën e enëve të gjakut normale dhe B është variabla që llogarit variancën e enëve të gjakut Moyamoya. 0.25 dhe 4 vijnë nga një vlerësim i përgjithshëm për të përcaktuar nëse variancat janë të barabarta apo jo. Pastaj ekzekutoni testin e dy mostrave t me [h, p] = ttest2 (A, B, 0.05, 'të dyja', 'të barabarta'), me A dhe B të jenë të njëjtat ndryshore siç u përmend më parë. Për deklaratën else, përdorni [h, p] = ttest2 (A, B, 0.05, 'të dyja', 'të pabarabartë') për të drejtuar një test me dy mostra t në rastin kur variancat nuk janë të barabarta. Përfundoni deklaratën nëse/tjetër. Kjo do të llogarisë f.
Krijoni një deklaratë nëse/tjetër që do të shfaqë një përfundim bazuar në vlerën e p. Kushti për deklaratën if do të jetë p> 0.05. Meqenëse ne zakonisht dështojmë të hedhim poshtë hipotezën zero kur vlera e p është më e madhe se 0.05, përdorni komandën disp ('X') për të shfaqur "Për shkak se vlera p është më e madhe se 0.05 ne nuk arrijmë të hedhim poshtë hipotezën zero", dhe " Prandaj ne nuk arrijmë të refuzojmë se sasia e enëve të gjakut të një truri normal është e barabartë me atë të një truri me sëmundjen Moyamoya. " Në pohimin tjetër, meqenëse ne zakonisht hedhim poshtë hipotezën zero kur vlera e p është nën 0.05, përdorni komandën disp ('X') për të shfaqur "Për shkak se vlera p është më pak se 0.05 ne hedhim poshtë hipotezën zero", dhe " Prandaj ne nuk arrijmë të refuzojmë se sasia e enëve të gjakut të një truri normal nuk është e barabartë me atë të një truri me sëmundjen Moyamoya. " Përfundoni deklaratën nëse/tjetër.
Recommended:
Përpunimi i Imazhit Me Raspberry Pi: Instalimi i OpenCV & Ndarja e Ngjyrës së Imazhit: 4 Hapa
Përpunimi i Imazhit Me Raspberry Pi: Instalimi i OpenCV & Ndarja e Ngjyrës së Imazhit: Ky postim është i pari nga disa mësime të përpunimit të imazhit që do të ndiqen. Ne hedhim një vështrim më të afërt në pikselët që përbëjnë një imazh, mësojmë se si të instalojmë OpenCV në Raspberry Pi dhe gjithashtu shkruajmë skripte testimi për të kapur një imazh dhe gjithashtu
Përpunimi i sinjalit audio dhe dixhital Bluetooth: një kornizë Arduino: 10 hapa
Bluetooth Audio & Digital Signal Processing: an Arduino Frame: Përmbledhje Kur mendoj për Bluetooth mendoj për muzikën, por fatkeqësisht shumica e mikrokontrolluesve nuk mund të luajnë muzikë nëpërmjet Bluetooth. Raspberry Pi mund, por ky është një kompjuter. Unë dua të zhvilloj një kornizë të bazuar në Arduino për mikrokontrolluesit për të luajtur audio përmes Bluet
Voltmetri DIY duke përdorur Arduino dhe përpunimi: 4 hapa
Voltmetri DIY duke përdorur Arduino dhe përpunim: Përshëndetje dhe mirëseardhje në projektin e sotëm. Unë jam Sarvesh dhe sot do të bëjmë një voltmetër të bazuar në arduino. Por ajo që është e ndryshme për këtë është se do të tregojë prodhimin e tij në softuerin e përpunimit. Tani në një nga mësimet e mia të mëparshme kemi bërë një proces
Flappy Bird Duke përdorur Arduino dhe Përpunimi: 5 Hapa
Flappy Bird Duke përdorur Arduino dhe Përpunim: Përshëndetje të gjithëve !!! Mirësevini në një projekt të ri të bazuar në Arduino. Ne të gjithë kemi luajtur një herë në jetën tonë lojën e zogjve flappy. Si nëse e luajmë në kompjuterin tonë dhe e kontrollojmë duke përdorur Arduino -n tonë ?? Ndiqni të gjitha hapat e dhënë më poshtë dhe deri në fund të këtij tutoriali
Përpunimi kuantimetrik i imazhit: 5 hapa
Përpunimi kuantimetrik i imazhit: (Figura e mësipërme ilustron krahasimin e metodës ekzistuese të përpunimit të imazhit me përpunimin kuantimetrik të imazhit. Vini re rezultatin e përmirësuar. Imazhi sipër djathtas tregon artefakte të çuditshme që vijnë nga supozimi i pasaktë se fotografitë masin diçka të tillë