Как преобразовать массив массивов 3D в изображение NIFTI?
Из этого вопроса Как преобразовать файл Nifti в массив Numpy? Я создал трехмерный массив изображений nifti. Я сделал некоторые изменения в этом массиве, например, изменил глубину массива, добавив заполнение нулями. Теперь я хочу преобразовать этот массив обратно в изображение, как я могу это сделать?
Я старался:
imga = Image.fromarray(img, 'RGB')
imga.save("modified/volume-20.nii")
но это не идентифицирует nii
расширение. Я также попробовал:
nib.save(img,'modified/volume-20.nii')
это тоже не работает, потому что img
должно быть nibabel.nifti1.Nifti1Image
если я хочу использовать nib.save
особенность. В обоих приведенных выше примерах img
3D-массив
0 ответов
Assuming that you a numpy array and you want to use nib.save
function, you need to first get the affine
transformation.
Example:
# define the path to the data
func_filename = os.path.join(data_path, 'task-rest_bold.nii.gz')
# load the data
func = nib.load(func_filename)
# do computations that lead to a 3D numpy array called "output"
# bla bla bla
# output = np.array(....)
# to save this 3D (ndarry) numpy use this
ni_img = nib.Nifti1Image(output, func.affine)
nib.save(ni_img, 'output.nii.gz')
Now you will be able to overlay the output.nii.gz
onto the task-rest_bold.nii.gz