首页 > 解决方案 > 使用 scikit 在 python 上将图像转换为灰度

问题描述

我需要编写一个函数,将表示为 numpy 数组的图像转换为灰度。以下是我收到的一些提示。我只被允许使用skimage.color.

一些相关提示:

查看skimage.color子包中的一些有用的转换功能。默认情况下,scikit-image转换函数将返回具有 0-1 浮点表示的图像。我们不希望这样;我们想要 0-255 的整数表示。NumPy 有一个数据类型:(np.uint8对于 8 位无符号整数)。回想一下,该np.array函数采用一个可选参数dtype来指定底层数组的类型。

这是我尝试过的:

from skimage.color import rgb2gray

def to_grayscale_uint(img_array):
    original = data.img_array()
    grayscale = rgb2gray(original)
    return grayscale 

标签: pythonnumpygrayscale

解决方案


您可以只使用该skimage函数,然后乘以 255。然后,将数组转换为整数:

array *= 255
array.astype(np.uint8)

推荐阅读