【问题标题】:Python skimage image with one value for color definition具有一个颜色定义值的 Python skimage 图像
【发布时间】:2020-11-01 00:57:48
【问题描述】:

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

from skimage import data

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

输出是:

(10, 100)
0.0

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

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

【问题讨论】:

    标签: python python-3.x image numpy scikit-image


    【解决方案1】:

    颜色由单个值定义,因为它不是 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 中减去像素值才能得到正常的相机照片。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-28
      • 2019-11-01
      • 2014-12-21
      • 1970-01-01
      • 2017-08-01
      • 2020-10-30
      • 1970-01-01
      相关资源
      最近更新 更多