Spaces:
Runtime error
Runtime error
| import dicom2nifti | |
| import SimpleITK as sitk | |
| from dicom2nifti.exceptions import ConversionValidationError | |
| from MsSeg.SegmentationNetworkBasis.NetworkBasis import image as Image | |
| import os | |
| import glob | |
| import pydicom | |
| #dataset_path = r"C:\Users\ms97\Documents\MRF-Daten\Messdaten" | |
| def fromrootgroupconvert(dataset_path, nii_name='test'): | |
| i=0 | |
| for patient_folder in glob.glob(dataset_path + "/*/"): | |
| print('-------------', patient_folder, '-------------') | |
| i=i+1 | |
| t1_nii_path = os.path.join(dataset_path, patient_folder, f'{nii_name}_{i}.nii') | |
| try: | |
| try: | |
| t1_dicom_path = os.path.join(dataset_path, patient_folder) | |
| dicom2nifti.dicom_series_to_nifti(t1_dicom_path, t1_nii_path) | |
| except OSError as err: | |
| print("Finished for Sequence T1Map " + patient_folder) | |
| t1_img = sitk.ReadImage(t1_nii_path) | |
| data_info = Image.get_data_info(t1_img) | |
| print('Data Info T1: ', data_info) | |
| except (KeyError, IndexError) as err: | |
| print("Failed for Sequence T1Map " + patient_folder + " ", err) | |
| def simplepatientconvert(patient_folder, nii_name='test'): | |
| t1_nii_path = os.path.join(patient_folder, f'{nii_name}.nii') | |
| try: | |
| try: | |
| dicom2nifti.dicom_series_to_nifti(patient_folder, t1_nii_path) | |
| except OSError as err: | |
| print("Finished for Sequence Dicom " + patient_folder) | |
| t1_img = sitk.ReadImage(t1_nii_path) | |
| data_info = Image.get_data_info(t1_img) | |
| print('Data Info T1: ', data_info) | |
| except (KeyError, IndexError) as err: | |
| print("Failed for Sequence Dicom " + patient_folder + " ", err) | |
| def itkfromrootgroupconvert(dataset_path, nii_name='test'): | |
| i=0 | |
| for patient_folder in glob.glob(dataset_path + "/*/"): | |
| print('-------------', patient_folder, '-------------') | |
| i=i+1 | |
| try: | |
| try: | |
| reader = sitk.ImageSeriesReader() | |
| dicom_names = reader.GetGDCMSeriesFileNames(patient_folder) | |
| reader.SetFileNames(dicom_names) | |
| image = reader.Execute() | |
| basefoldername=os.path.basename(os.path.normpath(patient_folder)) | |
| t1_nii_path = os.path.join(dataset_path, f'{basefoldername}.nii.gz') | |
| # Added a call to PermuteAxes to change the axes of the data | |
| image = sitk.PermuteAxes(image, [2, 1, 0]) | |
| sitk.WriteImage(image, t1_nii_path) | |
| except OSError as err: | |
| print("Finished for Sequence T1Map " + patient_folder) | |
| t1_img = sitk.ReadImage(t1_nii_path) | |
| data_info = Image.get_data_info(t1_img) | |
| print('Data Info Dicom: ', data_info) | |
| except (KeyError, IndexError) as err: | |
| print("Failed for Sequence Dicom " + patient_folder + " ", err) | |
| def itkforpatientconvert(patient_folder, nii_name='test'): | |
| reader = sitk.ImageSeriesReader() | |
| dicom_names = reader.GetGDCMSeriesFileNames(patient_folder) | |
| reader.SetFileNames(dicom_names) | |
| image = reader.Execute() | |
| t1_nii_path = os.path.join(patient_folder, f'{nii_name}.nii.gz') | |
| # Added a call to PermuteAxes to change the axes of the data | |
| image = sitk.PermuteAxes(image, [2, 1, 0]) | |
| sitk.WriteImage(image, t1_nii_path) | |
| if __name__=="__main__": | |
| dataset_path = r"D:\Data\dataNeaotomAlpha\DICOM_Naeotom\DICOM\23072115" | |
| itkfromrootgroupconvert(dataset_path) | |
| #patient_folder = r"D:\Data\dataNeaotomAlpha\Q0Q1Q4" | |
| #simpleitkconvert(patient_folder,'2511') | |