3

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です。なぜこれが起こっているのですか?

4

1 に答える 1