SimpleITK,读取元数据而不加载图像数组

2024-10-03 11:17:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我用SimpleITK读取MetaImage数据。在

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

import SimpleITK as sitk

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

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


Tags: 文件数据方法key内存importvalueas
1条回答
网友
1楼 · 发布于 2024-10-03 11:17:07

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())));

相关问题 更多 >