Как добавить третий параметр в форму файла nifti? - PullRequest
0 голосов
/ 26 февраля 2019

Я использую файлы 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)

На рисунке:

figure of slice1

Я хочу добавить третий параметр к этому 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)

И эта цифра:

figure of a

Затем я понял, что могу добавить третий параметр без расширения_расширения и просто используя skimage.transform, изменить размер функции сразу после получения slice1.

Вот вопрос: это правильный способ изменить форму этого файла набыть в состоянии использовать его как вход для некоторых реализаций глубокого обучения, которые ожидают ввода с заранее заданной формой?

Кстати, я не мог понять, почему последняя цифра имеет зеленый цвет в мозге.Это может быть вторым и может быть глупым вопросом.

...