如何从MRI切片中获取channel = 3?

时间:2019-11-21 14:15:25

标签: deep-learning channel vgg-net mri

我正在尝试使用VGG,但是输入请求了3个频道,但是我的imput_shape'channel = 1 我使用nibabel切片MRI(nii)

ValueError:输入必须具有3个通道;必须为0。得到了input_shape=(256, 256, 1)

这是我有关MRI切片的代码。

代码

 images = []
     images_ground = []
     for f in range(len(g)):
          a = nib.load(g[f])
          a = a.get_data()
          b = nib.load(g[f])
          b = b.get_data()
          a=a[:,:,48:166]
          b = transform.resize(b, (64, 64, 256))
          b=b[:,:,48:166]

          for i in range(a.shape[2]):
             images_ground.append(a[:,:,i])
             images.append(b[:, :, i])                 
     images_ground = np.array(images_ground)
     images_ground = images_ground.reshape(-1, 256, 256, 1)
     images = np.array(images)
     images = images.reshape(-1, 64, 64, 1)
     m = np.max(images)
     mi = np.min(images)
     images = (images - mi) / (m - mi)
     n=np.max(images_ground)
     ni=np.min(images_ground)
     images_ground=(images_ground-ni)/(n-ni)
     return images,images_ground

1 个答案:

答案 0 :(得分:0)

我也有同样的问题, VGG模型是在3通道(RGB)输入图像上训练的,但是当您提供仅1通道的灰度图像时,会显示错误

如果您想使用TensorFlow解决问题

tf.image.grayscale_to_rgb()

如果是Keras

datagen_train = ImageDataGenerator()
train_generator = datagen_train.flow_from_directory(directory_name,
<other parameters>,color_mode="rgb")