用python将dycom .dcm格式图像转换为nifti .nii

第一步安装dicom2nifti库,在你的环境中使用pip安装:

 pip install dicom2nifti 

第二步,在你的python代码中使用dicom2nifti.convert_directory()函数,可以将对应目录文件夹下的序列.dcm文件转换为.nii文件:

import dicom2nifti

dicom2nifti.convert_directory(path_of_dycom_series,path_of_nii_file)


#第一个参数是dycom文件的目录,第二个是你要保存nii文件的目录。需要注意的是,默认输出的是nii.gz压缩文件,你也可以通过compression=False,选择不压缩nii文件

因为发现目前搜索到的多数中文教程并不能正确将FMRI图像正确转换,例如很多用simpleITk的seriesreader的,所以写了一下自己正确转换的方法。因为FMRI是一个4D数据,有时间轴,所以用seriesreader读写出来的图像把时间轴维度给降维了。

当然你用SPM12工具的dycom import也是能正确转换的,但是我还是喜欢python这样的,代码直接简单。

下面提供一个简单的批量转换的代码:

import dicom2nifti
import os

root = "data/XX"  #root path is like 'data/XX'
converted_path = "nii_data/XX"  #path of converted_files_path to save
f_path = os.path.join(root,"fmri")# files of my fmri is like 'data/XX/fmri'
converted_f_path = os.path.join(converted_path,"fmri")#converted fmri files path
for i,item in enumerate(os.listdir(f_path)):
    item_path = os.path.join(f_path,item)# single fmri series directory path
    c_item_path = os.path.join(converted_f_path,item)
    os.makedirs(c_item_path)
    dicom2nifti.convert_directory(item_path,output_folder=c_item_path)
    print(i)

SimpleITK其实是具有读取FMRI图像这样的4D数据的函数的,这里就不过多介绍了,主要原因是dicom2nifti这个库被很多医学图像处理工具所采用,比如SPM。很多论文的pipeline都是用的这个,所以我们如果是方法创新的话,最好预处理跟别人保持一致,否则容易被质疑。

你可能感兴趣的:(深度学习,笔记,医学影像,1024程序员节,深度学习,python,人工智能,健康医疗)