I'm using SimpleITK to read MetaImage data.
Sometimes I need to access only the metadata (which is stored in a key=value .mhd file) but the only way I found to do it is to call ReadImage which is pretty slow as it loads the whole array into memory.
import SimpleITK as sitk
mhd = sitk.ReadImage(filename)
origin = mhd.GetOrigin()
spacing = mhd.GetSpacing()
direction = mhd.GetDirection()
Is there a way to access origin spacing and direction without loading the full image?
ITK itself does support this feature, but SimpleITK does not.
Please create a feature request with the project: https://github.com/SimpleITK/SimpleITK/issues
UPDATE:
This new feature has been added to the SimpleITK master branch for the 1.1 release.
Here is an example of the new interface:
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())));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With