[英]Memmap AttributeError when trying to access nifti image header
使用代码scan = nibabel.load(filepath)
加载 NIFTI (.nii) 图像(使用 Nibabel)后,通过scan.header
显示图像 header 信息很有用。
如果在调用 scan.header 之前调用scan.header
scan.get_fdata()
,则会出现错误: AttributeError: 'memmap' object has no attribute 'header'
。 此类代码的示例:
scan = nibabel.load(test_image.nii)
scan_volume_data = scan.get_fdata()
print(scan.header)
在调用scan.get_fdata()
之前,您必须先调用scan.header
。 这是因为在调用scan.get_fdata()
之后,图像 object 被转换为 memmap(内存映射)object,从而丢失了 header 的信息。 正确代码示例如下:
scan = nibabel.load(test_image.nii)
print(scan.header)
scan_volume_data = scan.get_fdata()
我们可以使用以下代码观察图像数据类型的变化:
scan = nibabel.load(test_image.nii)
print(type(scan)) # <class 'numpy.memmap'>
scan_volume_data = scan.get_fdata()
print(type(scan)) # <class 'nibabel.nifti1.Nifti1Image'>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.