Guest User

Untitled

a guest
Dec 18th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. import os
  2. import numpy as np
  3. import pydicom as dicom
  4. from matplotlib import pyplot as plt
  5.  
  6. root_dir = 'mydcomDir'
  7.  
  8.  
  9. def sortDcm():
  10. print('Given Path to the .dcm directory is: {}'.format(root_dir))
  11. slices = [dicom.read_file(root_dir + '/' + s) for s in os.listdir(root_dir)]
  12. slices.sort(key = lambda x: float(x.ImagePositionPatient[2]))
  13. pos1 = slices[int(len(slices)/2)].ImagePositionPatient[2]
  14. pos2 = slices[(int(len(slices)/2)) + 1].ImagePositionPatient[2]
  15. diff = pos2 - pos1
  16. # if diff > 0:
  17. # slices = np.flipud(slices)
  18. try:
  19. slice_thickness = np.abs(slices[0].ImagePositionPatient[2] - slices[1].ImagePositionPatient[2])
  20. except:
  21. slice_thickness = np.abs(slices[0].SliceLocation - slices[1].SliceLocation)
  22.  
  23. for s in slices:
  24. s.SliceThickness = slice_thickness
  25. # print("from sorted dicom",len(slices))
  26. return slices
  27.  
  28.  
  29. dcms = sortDcm()
  30. ref_dicom = dcms[0]
  31.  
  32. d_array = np.zeros((ref_dicom.Columns,ref_dicom.Rows, len(dcms)), dtype=ref_dicom.pixel_array.dtype)
  33.  
  34. for dcm in dcms:
  35. d_array[:, :, dcms.index(dcm)] = dcm.pixel_array
  36.  
  37. # fig = plt.figure(figsize=(12,12))
  38. # plt.subplot(1, 3, 1)
  39. # plt.title("Coronal")
  40. # plt.imshow(np.flipud(d_array[idx , :, :].T))
  41. # plt.subplot(1, 3, 2)
  42. # plt.title("Sagital")
  43. # plt.imshow(np.flipud(d_array[:, idy, :].T))
  44. # plt.subplot(1, 3, 3)
  45. plt.title("axial")
  46. plt.imshow(d_array[:, :, dcms.index(dcm)])
  47. plt.pause(0.001)
Add Comment
Please, Sign In to add comment