Nibabel为什么更改文件大小?

时间:2018-10-10 07:40:52

标签: python numpy image-processing nibabel

我正在使用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。任何想法为什么会这样?

1 个答案:

答案 0 :(得分:0)

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

Activities
相关问题