首页 > 解决方案 > 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 函数的替代方法吗?

标签: numpyimage-processinggraphicscomputer-vision

解决方案


应用该灰度滤镜的全部目的是将通道数从 3(即 R、G 和 B)减少到 1(即灰色)。

如果您真的非常想获得一个看起来一样但占用 3 倍内存的 3 通道图像,只需使所有 3 个通道相等:

grey = np.dstack((grey, grey, grey))

推荐阅读