Как изменить ориентацию изображения SimpleITK в Python - PullRequest
0 голосов
/ 02 февраля 2020

Я использовал этот код , чтобы прочитать серию для изображений dicom в python

series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(data_directory)
series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(data_directory, series_IDs[0])
series_reader = sitk.ImageSeriesReader()
series_reader.SetFileNames(series_file_names)
series_reader.LoadPrivateTagsOn()
image3D=series_reader.Execute()
size = image3D.GetSize()

В настоящее время его ориентация следующая:

enter image description here

Мне нужно изменить ориентацию на следующую ориентацию:

enter image description here

Есть ли какая-либо команда в python чтобы можно было изменить ориентацию изображения SimpleITK?

1 Ответ

2 голосов
/ 06 февраля 2020

Расширяя ваш код, чтобы выполнить это, я бы посмотрел на создание нового изображения из вашего загруженного в него и затем добавление собственного направления к нему. Альтернативно ITK имеет фильтр ориентации в доступной упаковке python. Это не просто, но может решить вашу проблему

series_IDs = sitk.ImageSeriesReader.GetGDCMSeriesIDs(data_directory)
series_file_names = sitk.ImageSeriesReader.GetGDCMSeriesFileNames(data_directory, series_IDs[0])
series_reader = sitk.ImageSeriesReader()
series_reader.SetFileNames(series_file_names)
series_reader.LoadPrivateTagsOn()
image3D=series_reader.Execute()
size = image3D.GetSize()

#get image data
image_out = sitk.GetImageFromArray(sitk.GetArrayFromImage(img))

#setup other image characteristics
image_out.SetOrigin(img.GetOrigin())
image_out.SetSpacing(img.GetSpacing())
#set to RAI
image_out.SetDirection(tuple(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0))
sitk.WriteImage(image_out, 'test.mha')
...