read a dcm file
1
2
3
4import SimpleITK as sitk
image = sitk.ReadImage(dcm_file)
image_arr = sitk.GetArrayFromImage(image)read a dcm series
1
2
3
4
5
6
7
8
9
10series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(series_path)
nb_series = len(series_IDs)
print(nb_series)
# 默认获取第一个序列的所有切片路径
dicom_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(file_path)
series_reader = sitk.ImageSeriesReader()
series_reader.SetFileNames(dicom_names)
image3D = series_reader.Execute()read a dcm case
1
2
3
4
5
6series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(case_path)
for series_id in series_IDs:
dicom_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(case_path, series_id)
series_reader = sitk.ImageSeriesReader()
series_reader.SetFileNames(dicom_names)
image3D = series_reader.Execute()read tag
1
2# 首先得到image对象
Image_type = image.GetMetaData("0008|0008") if image.HasMetaData("0008|0008") else 'Nan'发现一种序列,每张图的尺寸不同,这样执行series_reader的时候会报错,因为series_reader会依照第一层的图像尺寸申请空间,所以要么异常要么逐张读。
reference: http://itk-users.7.n7.nabble.com/ITK-users-Reader-InvalidRequestedRegionError-td38608.html