SimpleITK,无需加载图像数组即可读取元数据

fil*_*ppo 2 python medical simpleitk

我正在使用 SimpleITK 来读取 MetaImage 数据。

有时我只需要访问元数据(它存储在一个 key=value .mhd 文件中),但我发现这样做的唯一方法是调用ReadImage它,因为它将整个数组加载到内存中时非常慢。

import SimpleITK as sitk

mhd = sitk.ReadImage(filename)
origin = mhd.GetOrigin()
spacing = mhd.GetSpacing()
direction = mhd.GetDirection()
Run Code Online (Sandbox Code Playgroud)

有没有办法在不加载完整图像的情况下访问原点间距和方向?

blo*_*amp 6

ITK 本身确实支持此功能,但 SimpleITK 不支持。

请使用项目创建功能请求:https : //github.com/SimpleITK/SimpleITK/issues

更新:

此新功能已添加到 1.1 版本的 SimpleITK 主分支中。

以下是新界面的示例:

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())));
Run Code Online (Sandbox Code Playgroud)