SimpleITK,读取元数据而不加载图像数组
SimpleITK, read metadata without loading image array
我正在使用 SimpleITK 读取 MetaImage 数据。
有时我只需要访问元数据(存储在 key=value .mhd 文件中),但我发现这样做的唯一方法是调用 ReadImage
,这在加载时非常慢整个数组存入内存。
import SimpleITK as sitk
mhd = sitk.ReadImage(filename)
origin = mhd.GetOrigin()
spacing = mhd.GetSpacing()
direction = mhd.GetDirection()
有没有办法在不加载完整图像的情况下访问原点间距和方向?
ITK本身支持此功能,但SimpleITK不支持。
请创建项目的功能请求:
https://github.com/SimpleITK/SimpleITK/issues
更新:
此新功能已添加到 SimpleITK master 分支的 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())));
我正在使用 SimpleITK 读取 MetaImage 数据。
有时我只需要访问元数据(存储在 key=value .mhd 文件中),但我发现这样做的唯一方法是调用 ReadImage
,这在加载时非常慢整个数组存入内存。
import SimpleITK as sitk
mhd = sitk.ReadImage(filename)
origin = mhd.GetOrigin()
spacing = mhd.GetSpacing()
direction = mhd.GetDirection()
有没有办法在不加载完整图像的情况下访问原点间距和方向?
ITK本身支持此功能,但SimpleITK不支持。
请创建项目的功能请求: https://github.com/SimpleITK/SimpleITK/issues
更新:
此新功能已添加到 SimpleITK master 分支的 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())));