当前位置: 首页 > 工具软件 > dcm2niix > 使用案例 >

医学图像格式转换 -- .dcm转为.nii.gz

柯书
2023-12-01

注: 代码主要根据 dcm2nii.多张dcm 文件转换成nii等其他格式的存储。 进行函数整合,感谢原作者!

#coding=utf-8
import SimpleITK as sitk


def dcm2nii(dcms_path, nii_path):
	# 1.构建dicom序列文件阅读器,并执行(即将dicom序列文件“打包整合”)
    reader = sitk.ImageSeriesReader()
    dicom_names = reader.GetGDCMSeriesFileNames(dcms_path)
    reader.SetFileNames(dicom_names)
    image2 = reader.Execute()
	# 2.将整合后的数据转为array,并获取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
	# 3.将array转为img,并保存为.nii.gz
    image3 = sitk.GetImageFromArray(image_array)
    image3.SetSpacing(spacing)
    image3.SetDirection(direction)
    image3.SetOrigin(origin)
    sitk.WriteImage(image3, nii_path)


if __name__ == '__main__':
    dcms_path = r'xxx\series1'  # dicom序列文件所在路径
    nii_path = r'.\test.nii.gz'  # 所需.nii.gz文件保存路径
    dcm2nii(dcms_path, nii_path)
 类似资料: