python - 手动将 RGB 转换为灰度

标签 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()

我提取了图像的第一个 channel 进行转换。 但是使用 imread 语句时会产生错误

TypeError: Invalid dimensions for image data

我应该做什么?

最佳答案

来自doc plt.imshow(X)的:

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

这里有一个形状为 [None, None, 1] 的输入。您只需删除最后一个维度,如下所示:

result = np.squeeze(result, 2)

关于python - 手动将 RGB 转换为灰度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37860136/

相关文章:

python - 将居中切片外的数组值清零

python - pandas groupby 组中忽略 NaN 的标准错误

python - 将类型为 float64 的 np.array 转换为类型为 uint8 的缩放值

PHP 生成 RGB

python - 查看页面源代码时发现抓取代码

python - Pygame中调用 `fill`后显示背景颜色没有改变

python - Python 内置 pow 和大整数的数学 pow 之间的区别

python - 检查字符串末尾是否包含子字符串

ruby - 检查颜色是否在特定颜色范围内

python - RGB 到 HSV Python,不断改变色调