利用SimpleITK读取同一个目录下的多个dicom序列_Oath4Love的博客-CSDN博客

Oath4Love 2020-03-18 11:44:41

499

收藏 1

分类专栏: 医学图像处理

版权

当一个目录下存在多个dicom序列的时候(如下图),该如何利用python进行自动读取呢?下面展示利用SimpleITK的方法进行读取。

python代码如下:

# -*- coding: utf-8 -*-import osimport numpy as npimport SimpleITK as sitkdir_path = r"E:\pet_lung_cancer\all_data\P021083V"# 初始化SimpleITK的序列读取器reader = sitk.ImageSeriesReader()# 利用读取器得到目录下所包含的序列ID,比如图中的CT WB 5.0 B31f、PET WB (AC)和ThorRoutine 2.0 B40fseries_IDs = reader.GetGDCMSeriesIDs(dir_path)file_reader = sitk.ImageFileReader()# print(series_IDs)if series_IDs:    for series in series_IDs:        series_file_names =  reader.GetGDCMSeriesFileNames(dir_path, series)        # 根据一个单张的dcm文件,读取这个series的metedata,即可以获取这个序列的描述符        file_reader.SetFileName(series_file_names[0])        file_reader.ReadImageInformation()        series_description = file_reader.GetMetaData("0008|103e") # 序列的描述符,为CT WB 5.0 B31f、PET WB (AC)和ThorRoutine 2.0 B40f        dicom_itk = sitk.ReadImage(series_file_names)        print("正在保存序列:%s" % series_description)        save_path = os.path.join(dir_path, series_description + ".nii.gz")        sitk.WriteImage(dicom_itk, save_path)1234567891011121314151617181920212223

结果如下图:

文章主要参考了SimpleITK的教程第六版的DICOM标准

(0)

相关推荐