python - RGB 浮点图像转灰度 uint8

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

最佳答案

由于您的输出在 [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

关于python - RGB 浮点图像转灰度 uint8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59118994/

相关文章:

python - Tkinter 图像脚本的路径双正斜杠

python-3.x - 获取每个超像素的RGB像素值列表

python - 在不使用 reshape 的情况下 reshape n 维数组的 View

python - 我怎样才能得到下图的黑白图像?

python - Python 中的 Blob 检测?

python - 按两项排序的列表

python - Python 中的非严格按名称参数?

python - 为什么 SciPy 的 curve_fit 无法找到这个高阶高斯函数的协方差/给我有意义的参数?

python - 在 numpy 中获取唯一行位置的更快方法是什么

python - 禁用 slider 中的箭头键