Python 如何在不失真图像的情况下将图像转换为Uint8?

Python 如何在不失真图像的情况下将图像转换为Uint8?,python,python-imageio,Python,Python Imageio,我正在尝试对图像进行灰度处理。当我使用io.imsave将其灰度化并保存时,它工作正常,但会发出以下警告: 从浮点64到uint8的有损转换。Rang[0,1]。保存前将图像转换为Uint8以抑制此警告。 根据另一篇文章的建议,我使用imageio尝试在保存之前转换为uint8。警告消失,但现在图像保存为纯黑色图像。下面是我的代码,如果有人对如何在不扭曲图像的情况下防止警告提出建议,我们将不胜感激。谢谢 for subdir, dirs, files in os.walk(originalDir

我正在尝试对图像进行灰度处理。当我使用io.imsave将其灰度化并保存时,它工作正常,但会发出以下警告: 从浮点64到uint8的有损转换。Rang[0,1]。保存前将图像转换为Uint8以抑制此警告。 根据另一篇文章的建议,我使用imageio尝试在保存之前转换为uint8。警告消失,但现在图像保存为纯黑色图像。下面是我的代码,如果有人对如何在不扭曲图像的情况下防止警告提出建议,我们将不胜感激。谢谢

for subdir, dirs, files in os.walk(originalDir):
    for file in files:
        path = subdir + os.sep + file

        original = io.imread(path, plugin = 'pil')
        img = rgb2gray(original)

        fig, axes = plt.subplots(1, 2, figsize=(8, 4))
        ax = axes.ravel()

        ax[0].imshow(original)
        ax[0].set_title("Original")
        ax[1].imshow(img, cmap=plt.cm.gray)
        ax[1].set_title("Grayscale")
        fig.tight_layout()
        plt.show()
        filename = f"{grayDir}/{file}_uint8.jpg"
    
        img_uint8 = img.astype(np.uint8)
        imageio.imwrite(filename, img_uint8)