如何在python中将图像更改为所需的形状?

如何在python中将图像更改为所需的形状?,python,deep-learning,neural-network,conv-neural-network,image-resizing,Python,Deep Learning,Neural Network,Conv Neural Network,Image Resizing,我正在为MNIST时装数据集制作CNN模型。我创造了一个成功的CNN模式。但我想为我从互联网下载的另一幅图像测试分类模型 我所有的训练和测试集都是(28,28,1)型的。但是现在对于我想要预测的图像,我将其调整为(28,28),并使用 cv2.cvtColor(load_img_rz, cv2.COLOR_BGR2GRAY) 现在图像的形状是(28,28)。我试着把它输入模型,结果显示出错误 ValueError: Input 0 of layer sequential_6 is incomp

我正在为MNIST时装数据集制作CNN模型。我创造了一个成功的CNN模式。但我想为我从互联网下载的另一幅图像测试分类模型

我所有的训练和测试集都是(28,28,1)型的。但是现在对于我想要预测的图像,我将其调整为(28,28),并使用

cv2.cvtColor(load_img_rz, cv2.COLOR_BGR2GRAY)
现在图像的形状是(28,28)。我试着把它输入模型,结果显示出错误

ValueError: Input 0 of layer sequential_6 is incompatible with the layer: : expected min_ndim=4, 
found ndim=3. Full shape received: (None, 28, 3)
我认为形状是个问题。因此,如果问题是这样的,我如何将其转换为形状(28,28,1)


CNN在单通道RGB中比在三通道RGB中工作得更好吗?

由于您没有包含代码,我假设您的输入层有问题。因此,您需要首先在输入层中指定单位和输入dim的数量:

model = Sequential()
model.add(Dense(X.shape[1], activation='something you desired', input_dim=X.shape[1]))
等等


很难理解你在处理什么以及你想要实现什么,因为你没有指定/共享任何东西,甚至没有代码。

在深入学习中,对我来说一个非常有用的命令是
expand\u dims

您可以使用axis参数来更好地了解这里的情况

your_image.shape
>>> (28, 28)

your_new_array = np.expand_dims(your_image, axis=-1)
your_new_array.shape
>>> (28, 28, 1)