用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都是用的这个,所以我们如果是方法创新的话,最好预处理跟别人保持一致,否则容易被质疑。

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值