Почему Нибабель меняет размер моего файла?
Я работаю с изображениями в формате nii.gz. Поэтому я использую нибабель, чтобы открыть их. Проблема в том, что когда я открываю изображения, преобразую их в массивы и конвертирую их обратно в формат 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
, Есть идеи, почему это происходит?
0 ответов
Вы должны добавить исходную аффинную и заголовочную информацию nifti к выходному nifti. Например, в вашем случае:
nifti_final = nib.Nifti1Image(data, nifti_image.affine, nifti_image.header)