Я использую файлы ADNI набора данных .nii для своих экспериментов, посвященных анализу данных МРТ мозга.Вот фрагмент кода того, что я сделал и что я хочу сделать.
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 shape: (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()
Вывод этого кода:
size: 42496 shape: (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.
Вот вопрос: это правильный способ изменить форму этого файла набыть в состоянии использовать его как вход для некоторых реализаций глубокого обучения, которые ожидают ввода с заранее заданной формой?
Кстати, я не мог понять, почему последняя цифра имеет зеленый цвет в мозге.Это может быть вторым и может быть глупым вопросом.