Съдържание:

Обработка на изображения Moyamoya: 8 стъпки
Обработка на изображения Moyamoya: 8 стъпки

Видео: Обработка на изображения Moyamoya: 8 стъпки

Видео: Обработка на изображения Moyamoya: 8 стъпки
Видео: How To Do Stable Diffusion LORA Training By Using Web UI On Different Models - Tested SD 1.5, SD 2.1 2024, Ноември
Anonim
Обработка на изображения Moyamoya
Обработка на изображения Moyamoya

Моямоя, „пушек на дим“, е рядко заболяване, което се причинява от запушване на артериите в базалните ганглии, което е област в основата на мозъка. Заболяването е прогресиращо мозъчно -съдово заболяване, което засяга най -вече децата. Симптомите на моямоя включват първоначален инсулт, постоянни мини удари, мускулна слабост, парализа или припадъци в резултат на прогресивното стесняване на артериите. Без лечение моямоя ще причини проблеми с говора, сензорни увреждания и увредено съзнание. В нашия проект ще използваме MATLAB, за да обработим предварително MRI или MRA изображение, използвайки различни филтри, за да намалим шума в изображението, за да локализираме засегнатата област. Освен това ще използваме подобрение на функции, за да локализираме засегнатите области по -точно. Освен това след това ще проведем независим пробен t-тест, за да определим дали има значителна разлика между количеството на кръвоносните съдове в нормалния мозък в сравнение с мозъка, засегнат от moyamoya.

Стъпка 1: Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya

Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya
Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya
Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya
Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya
Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya
Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya
Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya
Намерете MRI и MRA сканиране на нормален мозък и мозък, засегнат от Moyamoya

Тези изображения са сканиранията, които използвахме за проекта, който намерихме онлайн. Двете изображения с кръвоносните съдове, разположени в средата, са MRA сканирания, докато другите две изображения са MRI сканирания.

Следните връзки са мястото, където се намират тези изображения:

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

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

Стъпка 2: Заредете изображения в MATLAB и задайте изображения на променлива за показване на изображения

Заредете изображения в MATLAB и задайте изображения на променлива за показване на изображения
Заредете изображения в MATLAB и задайте изображения на променлива за показване на изображения

За да започнете процеса, започнете с изчистване на командния прозорец, затворете всички възможни фигури и графики, които може да са вече отворени, и изчистете променливите, които вече са зададени във вашето работно пространство.

След това създайте цикъл for от 1 до 2, като използвате команда i = [1: 2]

След това заредете MRA изображенията с помощта на командата imread (sprintf ('filename%.filetype', i)), за да прочетете изображенията от файловете, посочени от името на файла, последвано от номера, използван за цикъла с помощта на sprintf за пакетно зареждане и присвояване го към променлива.

След това, за да покажете изображението във фигура, използвайте командата imshow (I).

За да зададете сива цветова карта, използвайте командата colormap (сива).

За да премахнете напълно цвета и да преобразувате 3D матрицата за изображенията в 2D, използвайте командата rgb2gray (I) и я присвойте на отделна променлива.

След това заредете изображенията с ЯМР, като използвате командата, посочена по -рано или imread (sprintf ('filename%.filetype', i)) и я присвойте на нова променлива

Повторете командата rgb2gray с новата променлива, използвана за MRI изображения.

Ако е необходимо, можете да преоразмерите изображение с помощта на командата imresize (A, scale) и да го присвоите на отделна променлива.

Стъпка 3: Подобрете удължените структури в изображение с интензивност с мултимащабно филтриране

Подобрете удължените структури с интензивно изображение с мултимащабно филтриране
Подобрете удължените структури с интензивно изображение с мултимащабно филтриране

Използвайки нова променлива, използвайте командата fibermetric (A), за да подобрите тръбните структури в изображенията

С предишната променлива използвайте командата histeq (B), за да подобрите изравняването на хистограмата, като трансформирате интензитета на изображенията и я присвоите на нова променлива.

Покажете хистограмата, като използвате командата imhist (B)

Създайте нова променлива, за да създадете праг за филтъра. В този случай задайте предишната променлива> 0.875, като филтрирате интензитета на пикселите под стойността 0.875

След това създайте нова фигура и използвайте командата imshow (A), за да покажете новото филтрирано изображение.

Стъпка 4: Стартирайте 2D медиен филтър

Стартирайте 2D медиен филтър
Стартирайте 2D медиен филтър

Използвайки команда medfilt2 (A, [m n]), стартирайте 2D медиен филтър, където всеки изходен пиксел съдържа средната стойност в границата mxn около съответния пиксел във входното изображение.

Създайте нова фигура и използвайте imshow (A), за да покажете медианното филтрирано изображение.

Стъпка 5: Маскирайте изображението

Маскирайте изображението
Маскирайте изображението

Използвайки средно филтрирано изображение, използвайте командата [labeledImage, numberOfBlots] = bwlabel (A), за да преброите броя на белите петна в изображението

След това използвайте състоянията на регионални подпори = регионални подпори (labeledImage, 'Area'), за да изчислите площите на всяко петно или кръвоносен съд

Присвояване на всички области в една променлива

След това, използвайки друга променлива, пребройте броя на петна, които надвишават 50 пиксела

След това сортирайте всички петна, които са под 50 пиксела в низходящ ред, като използвате командата [sortAreas, sortiranoIndicies] = сортиране (Области, "слизане")

След това, използвайки друга променлива, използвайте командата ismember (labeledImage, sortIndicies (1: numberToExtract)), за да върнете масив с елементи на labeledImage се намират в sortIndicies от номер 1 до броя на кръвоносните съдове, за да върнете логически 1 (true) или логически 0 (невярно).

С променливата в предишната стъпка намерете точките, които са верни (стойности> 0) и създайте логически масив, за да направите двоично изображение и да го присвоите на нова променлива.

Създайте нова фигура и използвайте imshow (A) новото двоично изображение.

След това обърнете изображението, като използвате командното некомплементиране (A) и го присвойте на друга променлива.

За да създадете маскирано изображение, използвайте нова променлива с команда resizedimage.*Uint8 (invertedimage)

Създайте нова фигура и използвайте imshow (A) за показване на маскирано изображение.

За да прекратите целия код, не забравяйте да използвате командата 'end', за да прекратите целия цикъл for

Стъпка 6: Изберете MRA сканирането за статистическо тестване

Изберете MRA сканирането за статистическо тестване
Изберете MRA сканирането за статистическо тестване
Изберете MRA сканирането за статистическо тестване
Изберете MRA сканирането за статистическо тестване
Изберете MRA сканирането за статистическо тестване
Изберете MRA сканирането за статистическо тестване

За да се подготвите за статистическо тестване, изберете MRA сканирането, което ще се използва за t-теста на независимите проби. Тъй като нашите две проби ще бъдат мозъчно засегнати Moyamoya и нормални мозъци, изберете прилично количество MRA сканирания за всяка група.

Стъпка 7: Изчислете площта на кръвоносните съдове при подготовката за статистически тестове

Изчислете площта на кръвоносните съдове в подготовка за статистически тестове
Изчислете площта на кръвоносните съдове в подготовка за статистически тестове

Статистическият тест ще се фокусира върху дължината или количеството на кръвоносните съдове, показани при MRA сканирането. По този начин трябва да изчислим площта на кръвоносните съдове преди сравнението.

Започнете с филтриране на MRA на нормалните мозъци и изчисляване на количеството на кръвоносните съдове. За да направите това, стартирайте цикъл for. Тъй като има три изображения, условието ще бъде i = [1: 3].

Отворете изображението с командата imread и го задайте на променлива.

След това създайте оператор if/else с командата if, else. За оператора if използвайте размера на командата (A, 3) == 3, където A е променливата, използвана за отваряне към изображението, за да създадете оператор if, когато третото измерение на масива е 3. След това преобразувайте изображението към 2D и да се отървете от цвета с помощта на командата rgb2gray (A) и да го присвоите на нова променлива. Използвайте командата imresize (A, [m n]), за да промените размера на изображението. В този случай променихме размера на изображенията до 1024 x 1024 матрица. За да подобрите тръбните структури на изображението, използвайте отново фиброметричната команда и я присвойте на нова променлива.

Следното е за изявлението else. Ако изображението не е 3D матрица, искаме да пропуснем преобразуването. Направете същото като оператора if, но без командата rgb2gray (A).

Създайте нова променлива, като я зададете равна на променливата от фиброметричната стъпка, по -голяма от 0,15. Това праг на изображението за интензитети, по -големи от 0,15.

Ще повторим редовете от кодове от стъпки 4 и 5 на инструкцията от средната линия на филтъра до реда imshow (I). След това използвайте командната сума (I (:)), за да добавите всички пиксели, съставляващи кръвоносните съдове, и да я присвоите на отделна променлива. Назовете нова променлива NormalBloodVessels (i) и я задайте равна на променливата от командата sum (I (:)). Това добавя данните към матрицата.

Прекратете цикъла и повторете, но за MRA на мозъците, засегнати от Moyamoya. Назовете променливата в края MoyaMoyaBloodVessels (i), за да не я бъркате с нормалните MRA на мозъка.

Стъпка 8: Изпълнете независим проби T-тест

Изпълнете независим пробен T-тест
Изпълнете независим пробен T-тест

Тъй като има две независими извадки и малка популация, изпълнете независим пробен t-тест.

Създайте и назовете функция, която изпълнява независим пробен t-тест, за да определи дали количеството на кръвоносните съдове в MRAs на нормалните мозъци е значително равно или не на това на MRAs на мозъците, засегнати от Moyamoya.

Покажете хипотезата, зададена за теста, като използвате командата disp ('X'). На първия ред изведете „Хипотези за два примерни t теста“. На втория ред се показва „H0 = Количеството на кръвоносните съдове на нормален мозък е равно на количеството на кръвоносните съдове на мозъка с болест на Моямоя“, за да се изрази нулевата хипотеза. На третия ред се показва „HA = Количеството кръвоносни съдове на нормален мозък не е равно на количеството на кръвоносните съдове на мозъка с болест на Моямоя“. да изложи алтернативната хипотеза.

Използвайки 95% доверителен интервал и размер на извадката 3, изчислете t резултата с помощта на командата tinv ([0.025 0.975], 2) и задайте на променлива t. Използвайте команда var (NormalBloodVessels) и var (MoyaMoyaBloodVessels) и ги задайте на променливи, за да изчислите отклоненията на двата набора от данни.

Проверете дали отклоненията са близки до равни или не. Направете това, като създадете оператор if/else с командата if, else. За условието в оператора if напишете A / B == [0.25: 4], където A е променливата, която отчита дисперсията на нормалните кръвоносни съдове, а B е променливата, която отчита дисперсията на кръвоносните съдове Moyamoya. 0,25 и 4 идват от обща оценка за определяне дали отклоненията са равни или не. След това изпълнете двата примерна t теста с [h, p] = ttest2 (A, B, 0.05, „и двете“, „равни“), като A и B са същите променливи, както бе споменато по -горе. За оператора else използвайте [h, p] = ttest2 (A, B, 0.05, 'и двете', 'неравно'), за да изпълните тест с две проби t в случай, че отклоненията не са равни. Прекратете оператора if/else. Това ще изчисли p.

Създайте оператор if/else, който ще покаже заключение въз основа на стойността на p. Условието за оператора if ще бъде p> 0,05. Тъй като обикновено не успяваме да отхвърлим нулевата хипотеза, когато стойността на p е по -голяма от 0,05, използвайте командата disp ('X'), за да покажете "Тъй като стойността на p е по -голяма от 0,05, не успяваме да отхвърлим нулевата хипотеза" и " Затова не успяваме да отхвърлим, че количеството на кръвоносните съдове на нормалния мозък е равно на това на мозъка с болестта на Моямоя. " В изявлението else, тъй като обикновено отхвърляме нулевата хипотеза, когато стойността на p е под 0.05, използвайте командата disp ('X'), за да покажете "Тъй като стойността на p е по -малка от 0.05, отхвърляме нулевата хипотеза" и " Следователно не успяваме да отхвърлим, че количеството на кръвоносните съдове на нормален мозък не е равно на това на мозъка с болест на Моямоя. " Прекратете оператора if/else.

Препоръчано: