使用opencv将RGB转换为GREY会删除1个通道

时间:2018-10-31 17:06:02

标签: keras rgb grayscale

我正在使用这些将RGB图像转换为灰色

arr[N - 1, M - 1]

这给了我(100,100),但我想要(100,100,1),因为这是CNN的输入,如下所示

i = cv2.resize(img, (100, 100))
i = cv2.cvtColor(i, cv2.COLOR_BGR2GRAY)

显示如何将RGB转换为GREY,以便保留1个通道因子。

3 个答案:

答案 0 :(得分:1)

使用numpy重塑:

i = i.reshape(i.shape + (1,))

答案 1 :(得分:0)

您可以添加额外的尺寸
np.expand_dims(i, axis=0)

答案 2 :(得分:0)

np.newaxisnp.expand_dims 相比,使用省略号和 reshape 可以使代码更具可读性。 这里是单行,很容易看出新维度将添加到最后一个维度。

import cv2
import numpy as np

i = cv2.cvtColor(i, code=cv2.COLOR_RGB2GRAY)[..., np.newaxis]