SimpleITK :: ImageSeriesWriter по умолчанию нарезает заданный объем 3D по оси Z и записывает фрагменты 2D-изображений в режиме XY.
Как изменить ось так, чтобы вывод находился в режиме XZ или YZ?
Другими словами, если срезы оси Z по умолчанию находятся в осевом виде, как получить срезы коронального и сагиттального вида?
Я попробовал функцию GitHub: FNNDSC / med2image для вывода xyz.
Но массив изображений написан вслепую, поэтому иногда X и Y транспонируются, или одна из осей переворачивается (переворачивается).
Поэтому я чувствую необходимость написать свой собственный код, чтобы иметь полный контроль.
def slice(dcm_folder, output_stem):
print('Reading Dicom directory:', path.abspath(dcm_folder))
reader = sitk.ImageSeriesReader()
dicom_names = reader.GetGDCMSeriesFileNames(dcm_folder)
reader.SetFileNames(dicom_names)
image = reader.Execute()
# cast the bit depth to PNG compatible "unsigned char"
image = sitk.Cast(sitk.RescaleIntensity(image), sitk.sitkUInt8)
size = image.GetSize()
print( "Image size:", size[0], size[1], size[2] )
# need Z filenames to write
series_filenames = list([output_stem + '-slice' + str(i).zfill(3) + '.png' for i in range(size[2])])
print('Writing {} image slices'.format(size[2]))
writer = sitk.ImageSeriesWriter()
writer.SetFileNames( series_filenames )
writer.Execute(image)
Приведенный выше код успешно запишет срезы оси Z.
Как мне изменить код, чтобы я мог получить фрагменты еще двух представлений?