Python 具有一个颜色定义值的 skimage 图像

Python skimage image with one value for color definition

我刚开始使用 skimage,我在 python.3.6 中使用它和 skimage-version: 0.17.2
我开始使用示例表单:https://scikit-image.org/docs/stable/user_guide/numpy_images.html
在那里我发现了一些我不明白的东西。此图像的颜色仅由 numpy 数组中的一个值定义。怎么可能?是否使用 RBG 或类似的东西? 我的代码如下所示:

from skimage import data

camera = data.camera()
print(camera.shape)
print(camera[0,0])

输出为:

(10, 100)
0.0

让我发疯的是 0.0 在这个例子中白色不应该是 [0,0,0] 吗?

当我显示图像时,我得到以下结果:
有人可以帮我吗?

颜色由单个值定义,因为它不是 RGB,而是灰度。所以图像的形状是(512, 512),而不是(512, 512, 3)。因此,如果您选择一个 white 点,它将是 [255] 而不是 [255, 255, 255].

如果您因为图片不是黑白而感到困惑,那只是因为 matplotlib 的默认颜色图是绿色和黄色。这不会改变像素值,它本质上只是一个“主题”或相机过滤器。如果将颜色图更改为灰色,您将得到:

import matplotlib.pyplot as plt

plt.imshow(255 - camera, cmap='Greys')
plt.show()

如果您不指定颜色图,即使是随机的像素阵列也会呈现淡黄色:

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots(figsize=(4, 4))
plt.imshow(np.random.randint(0, 256, (512, 512)))
plt.show()

不过,有一件事我不明白。图片好像倒过来了我必须从 255 中减去像素值才能获得普通相机图片。