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

时间:2019-06-21 06:36:46

标签: python python-3.x image image-processing 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

这将返回以下输出

enter image description here

我还要粘贴“ a”的标题信息

enter image description here

由此,使用哪个维度来标识MRI模式(如T1,T2,T1c,FLAIR等)?和如何只保留T1c?你能帮忙吗?

2 个答案:

答案 0 :(得分:1)

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

标题可能会有所帮助:

print(a.header)

接下来,仅保留1种方式,您可以使用此方式:

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

编辑1:

基于挑战的网站:

  

所有BraTS多模式扫描均可作为NIfTI文件(.nii.gz)和   描述a)原始(T1)和b)对比后T1加权(T1Gd),c)   T2加权(T2)和d)T2流体衰减反演恢复   (FLAIR)卷,并通过不同的临床方案获得   以及来自多个(n = 19)机构的各种扫描仪,称为   数据贡献者在这里。

  

所提供的数据在经过预处理(即   共同注册到相同的解剖模板,并内插到   相同的分辨率(1 mm ^ 3)并被头骨剥开。

因此,标头在这种情况下将无济于事(由于预处理,所有模态的尺寸相等)。

如果要查找对比度后的T1加权(T1Gd)图像,则为第二维图像,请使用:

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

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

参见此处:https://gofile.io/?c=fhoZTu

答案 1 :(得分:1)

无法从Nifti标头中识别MRI的类型。您将需要原始DICOM图像来派生此类信息。

但是,您可以目视检查图像,并比较白质,灰质和心室的对比度/颜色,以确定图像是否为T1,T2,FLAIR等。例如,在T1图像中,会期望较深的灰质,较轻的白质和黑色CSF。在T2图像中,您会期望使用较浅的灰质,较暗的白质和白色CSF。 FLAIR与T2相同,但具有“倒置” CSF。 在此处查看一些示例脑图像:https://casemed.case.edu/clerkships/neurology/Web%20Neurorad/t1t2flairbrain.jpg

话虽如此,您似乎有一个4维图像,它暗示了某种时间序列,因此我假设您的数据是DTI或fMRI或类似的数据。

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

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