如何从 MRI 图像中删除模态 - Python Nibabel

How to remove a modality from MRI image - Python Nibabel

我正在尝试将 MRI 大脑成像数据用于深度学习模型。目前我的图像有 4 个维度,如下所示,但我只想保留 MRI 图像的 T1c 模态,因为 我的模型输入应该只是 1 通道 3D MRI (T1c)。

我确实尝试使用 Nibabel 包,如下所示

import nibabel as nib 
ff = glob.glob('imagesTr\*')
a = nib.load(ff[0])
a.shape

这个returns下面的输出

我也粘贴了 'a'

的 header 信息

据此,使用哪个维度来识别 MRI 模态,如(T1、T2、T1c、FLAIR 等)?以及如何只保留 T1c?。你能帮忙吗?

首先您需要确定图像在第 4 维中的存储顺序。

可能 header 会有所帮助:

print(a.header)

接下来,要仅保留一种模态,您可以使用此方法:

data = a.get_fdata()
modality_1 = data[:,:,:,0]

编辑 1:

基于挑战网站:

All BraTS multimodal scans are available as NIfTI files (.nii.gz) and describe a) native (T1) and b) post-contrast T1-weighted (T1Gd), c) T2-weighted (T2), and d) T2 Fluid Attenuated Inversion Recovery (FLAIR) volumes, and were acquired with different clinical protocols and various scanners from multiple (n=19) institutions, mentioned as data contributors here.

The provided data are distributed after their pre-processing, i.e. co-registered to the same anatomical template, interpolated to the same resolution (1 mm^3) and skull-stripped.

因此 header 在这种情况下无济于事(由于预处理,所有模态的维度相同)。

如果您正在寻找 post-contrast T1 加权 (T1Gd) 图像,那么它是二维的,因此请使用:

data = a.get_fdata()
modality_1 = data[:,:,:,1]

此外,我们可以可视化每个 3D 体积 (data[:,:,:,0], data[:,:,:,1],data[:,:,:,2], data[:,:,:,3]) 并验证我的陈述。

看这里:https://gofile.io/?c=fhoZTu

无法从 Nifti 识别 MRI 的类型 header。您需要原始 DICOM 图像来导出此类信息。

但是,您可以目视检查您的图像并比较 contrast/colour 的白质、灰质和心室,以确定您的图像是否为 T1、T2、FLAIR 等。例如在T1 图像您会看到较暗的灰质、较浅的白质和黑色 CSF。在 T2 图像中,您会看到较浅的灰质、较暗的白质和白色 CSF。 FLAIR 与 T2 相同,但具有 'inverted' CSF。 在此处查看一些大脑图像示例:https://casemed.case.edu/clerkships/neurology/Web%20Neurorad/t1t2flairbrain.jpg

话虽这么说,你似乎有一个 4 维图像,这表明某种时间序列,所以我假设你的数据是 DTI 或 fMRI 或类似的东西。

也不可能将一种类型的 MRI 转换为另一种类型的 MRI,因此如果您的数据集还不是 T1,则无法在需要干净 T1 数据的模型中使用它。

我强烈建议您更多地了解 MRI 和您正在使用的数据类型。否则将无法解释您的结果。