手动将RGB转换为灰度张量流

时间:2016-06-16 13:04:44

标签: python numpy rgb tensorflow grayscale

我想手动将RGB图像转换为灰度,而不需要在tensorflow中使用库。所以我写了以下内容......

import tensorflow as tf
import matplotlib.image as mpimg
import matplotlib.pyplot as plt

# First, load the image again
filename = "MarshOrchid.jpg"
raw_image_data = mpimg.imread(filename)

image = tf.placeholder("float", [None, None, 3])
slice = tf.slice(image,[0,0,0],[-1,-1,1])

with tf.Session() as session:
    result = session.run(slice, feed_dict={image: raw_image_data})
    plt.imshow(result)
    plt.show()

我提取了图像的第一个通道进行转换。 但是这会在使用imread说

时产生错误
TypeError: Invalid dimensions for image data

我该怎么办?

1 个答案:

答案 0 :(得分:2)

来自plt.imshow(X)的doc

  

X:array_like,shape(n,m)或(n,m,3)或(n,m,4)

这里有一个形状输入[无,无,1]。您只需要删除最后一个维度:

result = np.squeeze(result, 2)