Organ-aware 3D lesion segmentation dataset and pipeline for abdominal CT analysis (ACM Multimedia 2025 candidate)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.py 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from SegmentiontoImageData import SegmentiontoImageData
  2. from ImagetoRT import *
  3. import os
  4. import datetime
  5. import glob
  6. import time
  7. from organList import * # "Organ" and "color_table"
  8. if __name__ == "__main__":
  9. start = time.time()
  10. dataset_folders = 'MONAI/'
  11. patient_folders = os.listdir(dataset_folders)
  12. for patient_folder in patient_folders:
  13. print(patient_folder, '='*50)
  14. label_path = 'MONAI/' + patient_folder + '/'
  15. dcm_file_path = 'DICOM/' + patient_folder + '/'
  16. print(dcm_file_path, label_path)
  17. spacingDatabase, DICOMInformation = SegmentiontoImageData(dcm_file_path, label_path)()
  18. try:
  19. RT_filename = glob.glob(dcm_file_path + 'RS*.dcm')[0]
  20. except:
  21. RT_filename = glob.glob(dcm_file_path + 'RTSTRUCT_*.dcm')[0]
  22. print(RT_filename)
  23. DICOM_RT = pydicom.dcmread(RT_filename)
  24. # DICOM_RT = pydicom.dcmread(dcm_file_path + 'AI_2.16.840.1.113669.2.931128.13525386.20221107152223.918302.dcm')
  25. # print(DICOM_RT)
  26. AI_DICOM_RT = ImagetoRT(spacingDatabase, DICOMInformation, DICOM_RT, Organ)()
  27. # 特殊格式
  28. ISOTIMEFORMAT = '%Y%m%d'
  29. date=datetime.date.today().strftime(ISOTIMEFORMAT)
  30. AI_DICOM_RT.StructureSetLabel = 'MONAI_Pred' + date
  31. AI_DICOM_RT.file_meta.MediaStorageSOPInstanceUID = DICOM_RT.SOPInstanceUID + date
  32. #'1.2.246.352.71.4.753219990087.110632.2017032321550020201013.dcm'
  33. AI_DICOM_RT.SOPInstanceUID = DICOM_RT.SOPInstanceUID + date
  34. # AI_DICOM_RT.file_meta.ImplementationClassUID = '1.3.6.1.4.1.9590.100.1.3.100.9.4'
  35. # pydicom.dataset.validate_file_meta(AI_DICOM_RT.file_meta)
  36. RT_filename = RT_filename.replace('RS','RS_MONAI')
  37. # RT_filename = RT_filename.replace('RTSTRUCT','AI_RTSTRUCT')
  38. pydicom.filewriter.dcmwrite(RT_filename, AI_DICOM_RT, write_like_original=True)
  39. # AI_DICOM_RT.save_as('python_cust_uid.dcm')
  40. end = time.time()
  41. print("執行時間:%f 秒\n\n" % (end - start))