我正在尝试创建一个函数来将图像从彩色转换为灰度。此外,将其从浮点转换为整数。
我注意到,默认情况下,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/