将DICOM转nii格式

import numpy as np
import shutil
import nibabel as nib
import os
import pandas as pd
import SimpleITK as sitk
import matplotlib.pyplot as plt

def dcm2nii_sitk(path_read, path_save):
    reader = sitk.ImageSeriesReader()
    seriesIDs = reader.GetGDCMSeriesIDs(path_read)
    N = len(seriesIDs)
    lens = np.zeros([N])
    for i in range(N):
        dicom_names = reader.GetGDCMSeriesFileNames(path_read, seriesIDs[i])
        lens[i] = len(dicom_names)
    N_MAX = np.argmax(lens)
    dicom_names = reader.GetGDCMSeriesFileNames(path_read, seriesIDs[N_MAX])
    reader.SetFileNames(dicom_names)
    image = reader.Execute()
    if not os.path.exists(path_save):
        os.mkdir(path_save)
    sitk.WriteImage(image, path_save+'/data.nii')

DICOMpath = r"./Dicomdataset"   #dicom文件夹路径
Midpath = r"./middataset"   #处理中间数据路径
Resultpath = r"./result"    #保存路径
cases = os.listdir(DICOMpath)  #获取dicom文件夹路径子文件夹名
for c in cases:  #遍历dicom文件夹路径子文件
    path_mid = os.path.join(DICOMpath , c)  #获取dicom文件夹下每一套数据的路径
    dcm2nii_sitk(path_mid , Midpath )  #将dicom转换为nii,并保存在Midpath中
    shutil.copy(os.path.join(Midpath , "data.nii"), os.path.join(Resultpath , c + ".nii"))
# 重新对保存后的nii文件名进行命名,并复制到Resultpath下

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值