python - RGB 浮点图像转灰度 uint8
问题描述
我正在尝试创建一个函数来将图像从color 转换为 grayscale。此外,将其从浮点数转换为整数。
我注意到默认情况下,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
推荐阅读
- c# - 如何将光标设置为组合框 xaml/c# 中的文本?
- javascript - 匹配字符串到数组
- terminal - 使用 Linux 终端将十六进制数转换为十进制数
- jquery-ui-sortable - contenteditable 导致 jqueryui 可排序在拖动时滞后。拖动时暂时删除 contenteditable?
- reactjs - 输入“需要”
' 不可分配给类型 'Validator<"horizontal" | “垂直” | 未定义>' - docker - 如何使用 kubernetes 中的内存和 cpu 以外的其他指标自动缩放 Pod
- gwt - GWT:gwt-material-addins:MaterialCarousel:您的轮播容器尚未初始化
- php - MongoConnectionException - 发现未知连接字符串选项“数据库”,值为“db_name”
- perl - 如何使用 File::Map 正确写入文件?
- c++ - 根据 CMakeList.txt 中定义的版本包含文件