Keras 使用opencv将RGB变为灰色将删除1个通道
我用这些把RGB图像转换成灰色Keras 使用opencv将RGB变为灰色将删除1个通道,keras,rgb,grayscale,Keras,Rgb,Grayscale,我用这些把RGB图像转换成灰色 i = cv2.resize(img, (100, 100)) i = cv2.cvtColor(i, cv2.COLOR_BGR2GRAY) 这给了我(100100),但我想要(100100,1),因为这是输入CNN所必需的,如下所示 model.add(Conv2D(16, (2,2), input_shape=(100,100,1 ), activation='relu')) 演示如何将RGB转换为灰色,以便保留1个通道因子 使用numpy重塑: i =
i = cv2.resize(img, (100, 100))
i = cv2.cvtColor(i, cv2.COLOR_BGR2GRAY)
这给了我(100100),但我想要(100100,1),因为这是输入CNN所必需的,如下所示
model.add(Conv2D(16, (2,2), input_shape=(100,100,1 ), activation='relu'))
演示如何将RGB转换为灰色,以便保留1个通道因子 使用numpy重塑:
i = i.reshape(i.shape + (1,))
您只需添加额外的维度
np.使用省略号和np展开(i,轴=0)
新轴
与np.展开
或重塑
相比,您可以获得更具可读性的代码。
这是一个内衬,很容易看到新尺寸将添加到最后一个尺寸
import cv2
import numpy as np
i = cv2.cvtColor(i, code=cv2.COLOR_RGB2GRAY)[..., np.newaxis]
对于这个问题的要求,这并不完全正确。必须在末尾添加额外尺寸,而不是作为第一个尺寸。正确的轴是-1,例如
np。展开(i,轴=-1)