numpy - RGB 到灰色滤镜不保留形状
问题描述
我有 209 张猫/非猫图像,我正在寻找扩充我的数据集。为此,我使用以下代码将每个 NumPy RGB 值数组转换为具有灰色过滤器。问题是我的神经网络需要它们的尺寸相同才能工作,但它们恰好有不同的尺寸。代码:
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140])
Normal Image Dimension: (64, 64, 3)
After Applying the Filter:(64,64)
我知道缺少的 3 可能是 RGB 值或其他东西,但我找不到一种方法来拥有一个不会影响实际图像的“虚拟”第三维。有人可以提供保持维度的 rgb2gray 函数的替代方法吗?
解决方案
应用该灰度滤镜的全部目的是将通道数从 3(即 R、G 和 B)减少到 1(即灰色)。
如果您真的非常想获得一个看起来一样但占用 3 倍内存的 3 通道图像,只需使所有 3 个通道相等:
grey = np.dstack((grey, grey, grey))