一、Dicom格式与Nifti格式
dicom格式:即医学数字成像和通信,是医学图像和相关信息的国际标准(ISO 12052)。它定义了质量能满足临床需要的可用于数据交换的医学图像格式。
nifti格式:Nifti 格式最初是为神经影像学发明的。神经影像信息学技术计划(NIFTI)将 NIfTI 格式预设为 ANALYZE7.5 格式的替代品。它最初的应用领域是神经影像,但是也被用在其他领域。
简单来讲,dcm格式的文件是一张一张的二维slice堆积起来所组成的三维数据,而nii格式的文件本身就是三维的数据,这就更方便进行计算机进行读取和处理。
二、Dicom到Nifti的批量化处理
有许多方法可以将dcm转换为nii格式,这里介绍使用MRIcron这个软件进行批量化转换的处理方法。
MRIcron的安装和环境变量的配置可以参考这篇文章。
在成功安装以及环境变量正确配置的情况下在cmd中输入dcm2nii可以得到下图的输出情况。同时它也展示了如何使用dcm2nii的命令行进行Dicom到Nifti格式的转换。
例如-o指定了输出目录,-g指定了输出.nii的原始格式还是.nii.gz的压缩格式。
1、单个dcm文件夹转换为nii
那么对于单个dcm文件夹到nii文件的转换,可以在命令行中输入:
dcm2nii -g y -o C:\output C:\input
值得注意的是-o后面第一个文件地址是nii文件的输出目录,而第二个才是dcm的文件夹地址。
当然也可以使用MRIcron安装文件夹中的图形化界面dcm2niigui.exe进行转换。
2、批量化处理
知道了如何使用命令行进行dcm到nii的转换,就可以利用python中的os.system进行批量化处理了。
假设文件结构如下所示:
- dicom
- folder1
- slice1.dcm
- slice2.dcm
- slice3.dcm
- …
- folder2
- folder3
- …
- folder1
就可以利用下面代码进行批量化dcm到nii的转换。
def dcm2nii(dicom_path, nii_path):
for folder in os.listdir(dicom_path):
src_path = os.path.join(dicom_path, folder)
dst_path = os.path.join(nii_path, folder)
if not os.path.exists(dst_path):
os.makedirs(dst_path)
os.system(f"dcm2nii -o {dst_path} {src_path}")