import SimpleITK as sitk
import os
import pydicom
import matplotlib.pyplot as plt
# 避免因路径中含中文导致SimpleITK无法读取
def dcm2nii(dcms_path, nii_path):
reader = sitk.ImageSeriesReader()
dicom_names = reader.GetGDCMSeriesFileNames(dcms_path)
reader.SetFileNames(dicom_names)
image2 = reader.Execute()
# 获取dicom文件基本信息
image_array = sitk.GetArrayFromImage(image2) # z, y, x
origin = image2.GetOrigin() # x, y, z
spacing = image2.GetSpacing() # x, y, z
direction = image2.GetDirection() # x, y, z
# 将array转为img,并保存为.nii.gz
image3 = sitk.GetImageFromArray(image_array)
image3.SetSpacing(spacing)
image3.SetDirection(direction)
image3.SetOrigin(origin)
sitk.WriteImage(image3, nii_path)
'''需要单个命名并且是.nii格式结尾'''
dcms_path = r'E:\data\20xxxx\S0000001' # dicom序列文件所在路径
nii_path = r'E:\data\data_nii\xxxx.nii' # 所需.nii文件保存路径
dcm2nii(dcms_path, nii_path)
12-12
148
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
11-29
408
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
06-18
1417
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-28
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交