SimpleITK, читать метаданные без загрузки массива изображений

Я использую SimpleITK для чтения данных MetaImage.

Иногда мне нужно получить доступ только к метаданным (которые хранятся в файле ключ = значение.mhd), но единственный способ, который я нашел, это вызвать ReadImage что довольно медленно, так как загружает весь массив в память.

import SimpleITK as sitk

mhd = sitk.ReadImage(filename)
origin = mhd.GetOrigin()
spacing = mhd.GetSpacing()
direction = mhd.GetDirection()

Есть ли способ получить доступ к пространству и направлению источника без загрузки полного изображения?

1 ответ

Решение

ITK сама поддерживает эту функцию, а SimpleITK - нет.

Пожалуйста, создайте запрос функции с проектом: https://github.com/SimpleITK/SimpleITK/issues

ОБНОВИТЬ:

Эта новая функция была добавлена ​​в основную ветку SimpleITK для версии 1.1.

Вот пример нового интерфейса:

if len ( sys.argv ) < 2:
    print( "Usage: DicomImagePrintTags <input_file>" )
    sys.exit ( 1 )

reader = sitk.ImageFileReader()

reader.SetFileName( sys.argv[1] )
reader.LoadPrivateTagsOn();

reader.ReadImageInformation();

for k in reader.GetMetaDataKeys():
    v = reader.GetMetaData(k)
    print("({0}) = = \"{1}\"".format(k,v))

print("Image Size: {0}".format(reader.GetSize()));
print("Image PixelType: {0}".format(sitk.GetPixelIDValueAsString(reader.GetPixelID())));
Другие вопросы по тегам