Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Numpy RGB到灰色过滤器不';我不能保持原形_Numpy_Image Processing_Graphics_Computer Vision - Fatal编程技术网

Numpy RGB到灰色过滤器不';我不能保持原形

Numpy RGB到灰色过滤器不';我不能保持原形,numpy,image-processing,graphics,computer-vision,Numpy,Image Processing,Graphics,Computer Vision,我有209张cat/noncat图像,我希望能够扩充我的数据集。为了做到这一点,我使用以下代码将RGB值的每个NumPy数组转换为灰色过滤器。问题是我需要它们的维数相同,我的神经网络才能工作,但它们恰好有不同的维数。代码: def rgb2gray(rgb): return np.dot(rgb[...,:3], [0.2989, 0.5870, 0.1140]) Normal Image Dimension: (64, 64, 3) After Applying the Filter:(

我有209张cat/noncat图像,我希望能够扩充我的数据集。为了做到这一点,我使用以下代码将RGB值的每个NumPy数组转换为灰色过滤器。问题是我需要它们的维数相同,我的神经网络才能工作,但它们恰好有不同的维数。代码:

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))

我想你可以使用numpy的
restrape()
,如果你的目标是拥有(64,64,1)我的目标是让它拥有与原始图像相同的形状。但是你不能,因为灰度图像是一个单通道图像,rgb是三个深度,我遗漏了什么吗?我明白了。问题是当我将图像展平成向量时,这可能会有问题,因为我的神经网络的大小是64x64x3。你是在使用转移学习还是从头开始的架构?解释代码的作用以及它如何解决OP的问题会使这成为一个更好的答案。
def rgb2gray(rgb):
  return np.dot(rgb[...,:3], [[0.2989, 0.5870, 0.1140],[0.2989, 0.5870, 0.1140],[0.2989, 0.5870, 0.1140]])