簡體   English   中英

Nibabel為什么更改文件大小?

[英]Why does Nibabel change the size of my file?

我正在使用nii.gz格式的圖像。 因此,我正在使用nibabel來打開它們。 問題是,當我打開圖像,將其轉換為numpy數組並將其轉換回Nifti格式時,輸出大小會更改。 順序為:

nifti_image = nib.load('/my_path_to_image/image.nii.gz')
np_img = ct_images.get_fdata()
nifti_final = nib.Nifti1Image(data, affine=np.eye(4)) # Convert them to nifti
nib.save(nifti_final , 'image.nii.gz')

初始文件為~45 MB ,運行上述代碼后,映像為~65 MB 我知道原始圖像是16位編碼的。 我最初的理論是,當轉換為numpy數組時,它們被編碼為64-bit ,的確如此。 所以我嘗試了以下方法:

nifti_image = nib.load('/my_path_to_image/image.nii.gz')
np_img = ct_images.get_fdata()
np_img = np_img.astype(numpy.float16, copy=False)
nifti_final = nib.Nifti1Image(data, affine=np.eye(4)) # Convert them to nifti
nib.save(nifti_final , 'image.nii.gz')

但是,輸出大小仍~65MB 任何想法為什么會這樣?

您應該將原始nifti仿射和標題信息添加到輸出nifti。 例如,在您的情況下:

nifti_final = nib.Nifti1Image(data, nifti_image.affine, nifti_image.header)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM