利用SimpleITK读取同一个目录下的多个dicom序列_Oath4Love的博客-CSDN博客
当一个目录下存在多个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)