600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 用python将dycom .dcm格式图像转换为nifti .nii

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

时间:2018-07-05 11:44:05

相关推荐

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

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

pip install dicom2nifti

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

import dicom2niftidicom2nifti.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 dicom2niftiimport osroot = "data/XX" #root path is like 'data/XX'converted_path = "nii_data/XX" #path of converted_files_path to savef_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 pathfor i,item in enumerate(os.listdir(f_path)):item_path = os.path.join(f_path,item)# single fmri series directory pathc_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都是用的这个,所以我们如果是方法创新的话,最好预处理跟别人保持一致,否则容易被质疑。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。