繁体   English   中英

我想使用Python将32 * 32 * 3 rgb图像转换为32 * 32 * 1维度的灰度

[英]I want to convert 32*32*3 rgb image to gray scale with 32*32*1 dimension using Python

以下是我将RGB转换为灰度图像的功能。

我的输入图像是32*32*3 ,其中输出尺寸看起来像32*32 ,但我正在寻找32*32*1 我是否需要调整大小或重新缩放此图像。

有什么想法吗?

def rgb2gray(rgb):
    return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])

如果您希望在Tensorflow图表中进行转换,您可以使用此功能: https ://www.tensorflow.org/api_docs/python/tf/image/rgb_to_grayscale

tf.image.rgb_to_grayscale(input_images)

此外,看起来你正在回答你自己的问题。 出什么问题了

def rgb2gray(rgb):
  return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])

祝好运!

许多初学者很难理解这一点。 我只会解释你。 如果你有20个元素。 您可以将它们转换为维度[20]或[10,2]或[5,2,2]的ndarray。 因此,在您的情况下,输出有32 * 32 = 1024像素数据。 你可以使用Numpy的重塑功能重新塑造它们。 这很简单。

例如,

print output.shape
// This prints as (32,32) in your case
output = output.reshape(32,32,1)

这解决了您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM