[英]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.