DICOM нарезки заказов в python - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть вопрос по поводу заказа ломтиков:

У меня есть около 80 фотографий тазобедренного сустава, но они не располагаются от стопы к голове или от головы к ногам.

Есть ли способ упорядочить их в намеченном порядке?

# pixel aspects, assuming all slices are the same
ps = slices[0].PixelSpacing
ss = slices[0].SliceThickness


ax_aspect = ps[1]/ps[0]
sag_aspect = ps[1]/ss
cor_aspect = ss/ps[0]

# create 3D array
img_shape = list(slices[0].pixel_array.shape)
img_shape.append(len(ct_images))
print(img_shape)

img3d = np.zeros(img_shape)

# fill 3D array with the images from the files
for i, s in enumerate(slices):
    img2d = s.pixel_array
    img3d[:, :, i] = img2d

# plot 3 orthogonal slices
a1 = plt.subplot(2,2,1)
plt.imshow(img3d[:,:,img_shape[2]//2])
a1.set_aspect(ax_aspect)

a2 = plt.subplot(2,2,3)
plt.imshow(img3d[:,img_shape[1]//2,:])
a2.set_aspect(sag_aspect)

a3 = plt.subplot(2,2,2)
plt.imshow(img3d[img_shape[0]//2,:,:].T)
a3.set_aspect(cor_aspect)


plt.show()

UID класса SOP - это CT Image Storage.

Это код и это изображения результатов.

All pictures of transverse view

3D view

1 Ответ

0 голосов
/ 02 апреля 2020

slices = sorted(slices, key=lambda x: x.ImagePositionPatient[2]), вероятно, то, что вы хотите, в зависимости от того, какой у вас UID класса SOP .

...