RGB浮动图像到灰度uint8

时间:2019-11-30 18:20:35

标签: python scikit-image

我正在尝试创建一个将图像从颜色转换为灰度的功能。此外,将其从浮点数转换为整数。

我注意到默认情况下,scikit-image转换函数返回的浮点表示形式为[0,1]的图像。我想要使​​用np.uint8从0-255的整数表示形式。

from skimage.color import rgb2gray
import numpy as np

def to_grayscale_uint (image):
    original = image()
    grayscale = rgb2gray(original)
    grayscale = np.uint8
    target = target.astype('uint8')
    return grayscale

1 个答案:

答案 0 :(得分:0)

由于您的输出在[0,1]范围内,因此您只需将其乘以255,然后使用np.uint8()进行投射。

import numpy as np

from skimage import data
from skimage.color import rgb2gray


def to_gray_uint(image):
    return np.uint8(rgb2gray(image) * 255)


original = data.astronaut()

gray = rgb2gray(original)
print(gray.min(), gray.max(), gray.dtype)  # prints: 0.0 1.0. float64

gray = to_gray_uint(original)
print(gray.min(), gray.max(), gray.dtype)  # prints: 0 255 uint8