Понимание и обработка данных МРТ может быть сложным и запутанным. В этом блоге я предоставлю базовое представление о том, как загружать и обработать данные МРТ с использованием наиболее важных библиотек Python.
Данные МРТ в основном состоит из трех фрагментов информации. – > Заголовок (метаданные) -> Affine (представляет аффинное преобразование) -> Данные изображения (n -d массив)
Большая часть данных медицинской визуализации будет в форматах Nifti (.nii) и Dicom (.dcm). Мы будем обсуждать данные формата NIFTI, формат DICOM будет обсуждаться в дальнейших постах.
Здесь мы используем Numpy, библиотеки Nibabel для загрузки и обработки данных и Matplotlib для визуализации.
Если у вас нет этих библиотек, вы можете установить, используя PIP Package Manager в вашей среде Python, введя следующие команды: PIP установить Numpy Pip установить Niabel Pip установить Matplotlib
Импорт модулей
import nibabel as nib import numpy as np
Загрузка данных
data = nib.load("path to Nifti format data") #(.nii or .nii.gz)
print(data)
Здесь данные это объект данных, содержащий заголовок, аффинные и изображения данных со всеми необходимыми атрибутами для дальнейшей обработки.
image_data = data.get_fdata()
get_fdata () Функция возвращает матрицу с плавающей точкой, содержащую данные пикселя изображения
image_data.shape
(256, 256, 128)
Выходная форма представляет собой, что Image_data 3D-том, ось Z (128) представляет количество срезов в данных МРТ
Чтобы проверить аффинные координаты
print(data.affine)
Это выведет массив, связанные с координатами массива из массива данных изображений, в координаты в некоторых мировой системе координат RAS+ Рас (справа, передний, верхний) Для получения подробного понимания систем координат нейровизуализации проходит следующую ссылку: https://nipy.org/nibabel/coordinate_systems.html
Чтобы проверить Заголовок информация объекта данных
print(data.header)
Подробное понимание метаданных и аффинных преобразований будет обсуждаться в следующем посте.
Визуализация МРТ ломтики
import matplotlib.pyplot as plt plt.imshow(image_data[:,:,64], cmap="gray")
Вы можете изменить целочисленное значение в приведенном выше фрагменте кода в диапазоне (0-127), чтобы визуализировать различные срезы.
plt.imshow(image_data[:,:,116], cmap="gray")
Визуализируйте 116 -й срез
plt.imshow(image_data[120,:,:], cmap="gray")
Визуализируйте 120-й Slice W.R.to Axisis
Для получения подробного понимания индексации с использованием Numpy просмотрите следующую ссылку https://numpy.org/doc/stable/user/basics.indexing.html
В дальнейших постах я буду обсуждать, как подготовить данные МРТ для применения алгоритмов машинного обучения, методов удаления шума и различных методов предварительной обработки и постобработки.
Оригинал: “https://dev.to/narendraanupoju/mri-data-processing-with-python-1jgg”