前言
有些dicom的文件夹,用软件打开,他娘的竟然有好几组dicom序列,用普通的转nii文件的方法的话,我还得挨个把它们分离出来。累了累了,所以有下面的代码
代码
import os
import SimpleITK as sitk
def dcm2nii(dicom_dir_,save_dir_):
if not os.path.exists(save_dir_):
os.mkdir(save_dir_)
series_ids = sitk.ImageSeriesReader.GetGDCMSeriesIDs(dicom_dir_)
# print(len(series_ids))
for idx_series_ids in range(len(series_ids)):
series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(dicom_dir_,series_ids[idx_series_ids])
series_reader = sitk.ImageSeriesReader()
series_reader.SetFileNames(series_file_names)
image = series_reader.Execute()
print(f'{
idx_series_ids} spacing: {
image.GetSpacing()}')
filename = f'{
idx_series_ids:03}.nii.gz'
save_path = os.path.join(save_dir_,filename)
sitk.WriteImage(image,save_path)
print('转换结束'.center(60,'='))
if __name__ == '__main__':
dicom_dir = "重建 2月28"
save_dir = "test"
dcm2nii(dicom_dir_=dicom_dir,save_dir_=save_dir)
pass