为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Nibabel 会更改我的文件大小?

为什么 Nibabel 会更改我的文件大小?

GCT1015 2021-07-02 14:01:29
我正在处理格式为 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 niftinib.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 niftinib.save(nifti_final , 'image.nii.gz')但是,输出仍然是相同的大小~65MB。任何想法为什么会发生这种情况?
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

您应该将原始 nifti 仿射和标题信息添加到输出 nifti。例如,在您的情况下:

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


查看完整回答
反对 回复 2021-07-13
  • 1 回答
  • 0 关注
  • 197 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信