Оглавление:

Обработка изображений Моямоя: 8 шагов
Обработка изображений Моямоя: 8 шагов

Видео: Обработка изображений Моямоя: 8 шагов

Видео: Обработка изображений Моямоя: 8 шагов
Видео: Думали что станцует лезгинку,но когда задвигалась все офигели #wedding #weddingdance 2024, Ноябрь
Anonim
Обработка изображений Моямоя
Обработка изображений Моямоя

Моямоя, «клуб дыма», - редкое заболевание, которое вызывается закупоркой артерий в базальных ганглиях, которые являются областью у основания головного мозга. Заболевание представляет собой прогрессирующее цереброваскулярное заболевание, которое чаще всего поражает детей. Симптомы моямоя включают начальный инсульт, постоянные мини-удары, мышечную слабость, паралич или судороги в результате прогрессирующего сужения артерий. Без лечения моямоя вызовет проблемы с речью, сенсорными нарушениями и повреждением сознания. В нашем проекте мы будем использовать MATLAB для предварительной обработки изображения МРТ или МРА с использованием различных фильтров для уменьшения шума в изображении и определения местоположения пораженной области. Кроме того, мы будем использовать усовершенствованную функцию, чтобы более точно определять местонахождение пораженных участков. Более того, затем мы запустим независимый t-критерий выборки, чтобы определить, существует ли значительная разница между количеством кровеносных сосудов в нормальном мозге по сравнению с мозгом, пораженным моейямойей.

Шаг 1. Найдите МРТ- и МРА-сканирование нормального мозга и мозга, пораженного Моямоя

Найдите МРТ и МРА-сканирование нормального мозга и мозга, пораженного Моямоя
Найдите МРТ и МРА-сканирование нормального мозга и мозга, пораженного Моямоя
Найдите МРТ и МРА-сканирование нормального мозга и мозга, пораженного Моямоя
Найдите МРТ и МРА-сканирование нормального мозга и мозга, пораженного Моямоя
Найдите МРТ и МРА-сканирование нормального мозга и мозга, пораженного Моямоя
Найдите МРТ и МРА-сканирование нормального мозга и мозга, пораженного Моямоя
Найдите МРТ и МРА-сканирование нормального мозга и мозга, пораженного Моямоя
Найдите МРТ и МРА-сканирование нормального мозга и мозга, пораженного Моямоя

Эти изображения - отсканированные изображения, которые мы использовали для проекта, найденного в Интернете. Два изображения с кровеносными сосудами, расположенными посередине, представляют собой МРА-сканирование, а два других изображения - МРТ-сканирование.

Эти изображения можно найти по следующим ссылкам:

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 (gray).

Чтобы полностью исключить цвет и преобразовать 3D-матрицу изображений в 2D, используйте команду rgb2gray (I) и назначьте ее отдельной переменной.

Затем загрузите изображения МРТ с помощью ранее указанной команды или imread (sprintf ('filename%.filetype', i)) и назначьте ее новой переменной.

Повторите команду rgb2gray с новой переменной, используемой для изображений МРТ.

При необходимости вы можете изменить размер изображения с помощью команды imresize (A, scale) и присвоить отдельную переменную.

Шаг 3. Улучшение вытянутых структур в изображении интенсивности с помощью многомасштабной фильтрации

Улучшение удлиненных структур в изображении интенсивности с помощью многоуровневой фильтрации
Улучшение удлиненных структур в изображении интенсивности с помощью многоуровневой фильтрации

Используя новую переменную, используйте команду fibermetric (A) для улучшения трубчатых структур на изображениях.

С предыдущей переменной используйте команду histeq (B), чтобы улучшить выравнивание гистограммы, преобразовав интенсивность изображений и назначив ее новой переменной.

Отобразите гистограмму с помощью команды imhist (B)

Создайте новую переменную, чтобы создать порог для фильтра. В этом случае присвойте предыдущей переменной> 0,875, отфильтровывая интенсивность пикселей ниже значения 0,875.

После этого создайте новую фигуру и используйте команду imshow (A) для отображения нового отфильтрованного изображения.

Шаг 4. Запустите 2D-медианный фильтр

Запустите 2D-медианный фильтр
Запустите 2D-медианный фильтр

Используя команду medfilt2 (A, [m n]), запустите двумерный медианный фильтр, где каждый выходной пиксель содержит медианное значение на границе mxn вокруг соответствующего пикселя во входном изображении.

Создайте новую фигуру и используйте imshow (A), чтобы отобразить изображение с медианной фильтрацией.

Шаг 5: замаскируйте изображение

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

Используя медианное отфильтрованное изображение, используйте команду [labeleledImage, numberOfBlots] = bwlabel (A), чтобы подсчитать количество белых пятен на изображении.

Затем с помощью функции state props региона = regionprops (labeleledImage, 'Area') вычислите площади каждого пятна или кровеносного сосуда.

Назначьте все области в одну переменную

Затем, используя другую переменную, подсчитайте количество пятен, превышающих 50 пикселей.

После этого отсортируйте любые кляксы размером менее 50 пикселей в порядке убывания с помощью команды [sortedAreas, sortedIndicies] = sort (Areas, 'Descent')

Затем, используя другую переменную, используйте команду ismember (labeleledImage, sortedIndicies (1: numberToExtract)), чтобы вернуть массив с элементами labeledImage, найденными в sortedIndicies от числа 1 до количества кровеносных сосудов, чтобы вернуть логическую 1 (истина) или логический 0 (ложь).

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

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

Затем инвертируйте изображение с помощью дополнения команды (A) и присвойте его другой переменной.

Чтобы создать замаскированное изображение, используйте новую переменную с командой resizedimage. * Uint8 (инвертированное изображение)

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

Чтобы завершить весь код, обязательно используйте команду 'end', чтобы завершить весь цикл for

Шаг 6. Выберите MRA-сканирование для статистического тестирования

Выберите сканирование MRA для статистического тестирования
Выберите сканирование MRA для статистического тестирования
Выберите сканирование MRA для статистического тестирования
Выберите сканирование MRA для статистического тестирования
Выберите сканирование MRA для статистического тестирования
Выберите сканирование MRA для статистического тестирования

Чтобы подготовиться к статистическому тестированию, выберите сканы MRA, которые будут использоваться для t-критерия независимых выборок. Поскольку в наших двух образцах будет пораженный мозг Моямоя и нормальный мозг, выберите приличное количество МРА-сканирований для каждой группы.

Шаг 7: Расчет площади кровеносных сосудов при подготовке к статистическому тестированию

Рассчитайте площадь кровеносных сосудов при подготовке к статистическому тестированию
Рассчитайте площадь кровеносных сосудов при подготовке к статистическому тестированию

Статистический тест будет сосредоточен на длине или количестве кровеносных сосудов, показанных на снимках MRA. Таким образом, мы должны вычислить площадь кровеносных сосудов перед сравнением.

Начните с фильтрации MRA нормального мозга и расчета количества кровеносных сосудов. Для этого запустите цикл for. Поскольку есть три изображения, условие будет i = [1: 3].

Откройте изображение с помощью команды imread и назначьте его переменной.

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

Ниже приводится инструкция else. Если изображение не является трехмерной матрицей, мы хотим пропустить преобразование. Выполните то же самое, что и оператор if, но без команды rgb2gray (A).

Создайте новую переменную, установив ее равной переменной из шага фиброметрии больше 0,15. Это пороговое значение для изображения с интенсивностью более 0,15.

Мы будем повторять строки кодов, начиная с шагов 4 и 5 инструкции, от строки медианного фильтра до строки imshow (I). После этого используйте команду sum (I (:)), чтобы сложить все пиксели, составляющие кровеносные сосуды, и присвоить это отдельной переменной. Назовите новую переменную NormalBloodVessels (i) и установите ее равной переменной из команды sum (I (:)). Это добавляет данные в матрицу.

Завершите цикл и повторите, но для MRA мозга, пораженного Моямоя. Назовите переменную в конце MoyaMoyaBloodVessels (i), чтобы не путать ее с обычными MRA мозга.

Шаг 8: Проведите T-тест для независимых выборок

Проведите T-тест для независимых выборок
Проведите T-тест для независимых выборок

Поскольку есть две независимые выборки и небольшая совокупность, запустите t-тест независимых выборок.

Создайте и назовите функцию, которая запускает t-тест независимых выборок, чтобы определить, действительно ли количество кровеносных сосудов в MRA нормального мозга значительно равно количеству кровеносных сосудов в MRA мозга, затронутого 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 - переменная, которая учитывает отклонение кровеносных сосудов Моямоя. 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.

Рекомендуемые: