zy7_oldserver
1
fd601de
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')