Как добавить третий параметр в форму файла nifti?
Я использую файлы.nii набора данных ADNI для своих экспериментов, посвященных анализу данных МРТ мозга. Вот фрагмент кода того, что я сделал и что я хочу сделать.
import numpy as np
from pylab import *
import nibabel as nib
import matplotlib.pyplot as plt
import skimage.transform
img_path=r"C:\\Users\\Umit Kilic\\Komodomyfiles\\umit\\cn.nii"
nii_obj=nib.load(img_path)
img=nii_obj.get_fdata()
slice1=(img[60,:,:])
slice2=(img[:,80,:])
slice3=(img[:,:,60])
figure()
imshow(slice1)
show()
print(type(slice1)," size:", slice1.size," shape:", slice1.shape)
Выходные данные печати:
размер: 42496 форма: (256, 166)
Рисунок это:
Я хочу добавить третий параметр к этому ndarray, как (256,166,3), и я добавил этот фрагмент кода в конце приведенного выше кода:
x=np.expand_dims(slice1,axis=2)
print(type(x)," size:", x.size," shape:", x.shape)
figure()
imshow(x)
show()
Выход этого кода:
размер: 42496 форма: (256, 166,1)
Для рисунка я получил эту ошибку: TypeError: Неверные размеры для данных изображения
Теперь последний параметр должен быть равен 3, чтобы можно было использовать этот ndarray в качестве входных данных для VGG16, VGG19, ResNet50 и т. Д. Причина, например, VGG16 ожидает ввод с формой (224,224,3).
Затем я добавил этот фрагмент кода вышеупомянутого кода:
a=skimage.transform.resize(x,(256,166,3))
print(type(a)," size:", a.size," shape:", a.shape)
figure()
imshow(a)
show()
Вывод кода печати:
размер: 42496 форма: (256, 166,3)
И эта цифра:
Затем я понял, что могу добавить третий параметр без расширения_расширения и просто с помощью функции Skimage.transform изменить размер сразу после получения slice1.
Вот вопрос: является ли это правильным способом изменить форму этого файла, чтобы иметь возможность использовать его в качестве входных данных для некоторых реализаций глубокого обучения, которые ожидают ввода с предварительно определенной формой?
Кстати, я не мог понять, почему у последней фигуры зеленый цвет в мозгу. Это может быть вторым и может быть глупым вопросом.