是否可以为RGB和灰度图像创建训练矩阵

时间:2018-09-03 12:02:41

标签: python numpy tensorflow image-processing conv-neural-network

我正在尝试为CNN创建训练矩阵。 图像都是RGB和灰色/比例。

要创建类似 [ # of images, #features ]

图片大小为:

1024* 1024

以下是我的代码:

from skimage.transform import rescale, resize
from skimage import io

features = np.empty((0,1024 * 1024), np.float32)
imagePath = directoyPath+"/"+ imageName
image = io.imread(imagePath)
print(image.shape)
flatFeatures = np.reshape(image,(1,1024*1024))
print(flatFeatures.shape)
features = np.append(features, flatFeatures, axis=0)
print(features.shape)

问题是RGB形状为(1024,1024,3)。

我如何将RGB和灰度图像馈送到features矩阵。

1 个答案:

答案 0 :(得分:0)

因为将RGB图像转换为灰度图像后,您必须输入RGB图像,因此无法将不同通道的图像传递到CNN中,因为RGB具有3个通道,而灰度图像具有1个通道,因此请在CNN是必需的,它不能是动态的,因此必须确保您拥有3个频道或1个频道

出于您的目的,我建议您使用cvtColor(gray, color, cv::COLOR_GRAY2BGR)将灰度图像转换为RGB,该图像实际上不会获得任何颜色,但是其中的通道数将为3,从而允许您同时传递RGB和灰度(技术上为RGB,但仍为无色)图像在一起