Почему Нибабель меняет размер моего файла? - PullRequest
0 голосов
/ 10 октября 2018

Я работаю с изображениями в формате nii.gz.Поэтому я использую nibabel , чтобы открыть их.Проблема в том, что когда я открываю изображения, преобразую их в массивы и конвертирую их обратно в формат 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-битном формате.Моя первоначальная теория заключалась в том, что при преобразовании в массив numy они были закодированы как 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 голосов
/ 22 февраля 2019

Вы должны добавить исходную аффинную и заголовочную информацию nifti к выходному nifti.Например, в вашем случае:

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

...