以下是将RGB转换为灰度图像的功能。
我的输入图片为32*32*3
,其中输出尺寸看起来像32*32
,但我正在寻找32*32*1
。我是否需要调整大小或重新缩放此图像。
有什么想法吗?
def rgb2gray(rgb):
return np.dot(rgb[...,:3], [0.299, 0.587, 0.114])
答案 0 :(得分:2)
如果您希望在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])
祝你好运!
答案 1 :(得分:1)
许多初学者很难理解这一点。我只会解释你。如果你有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)
这解决了您的问题。