arr_to_image 更改灰度图像

问题描述 投票:0回答:1

处理图像时,将 PIL 灰度图像转换为 numpy 数组时遇到奇怪的行为。

这是一个加载灰度图像的小代码。

from keras.utils import img_to_array, array_to_img
a = keras.utils.load_img(img_src + "/00000.jpg")
b = img_to_array(a)
c = array_to_img(b) d = img_to_array(c)

上传PIL格式的图片后,正常显示。随后将其转换为 numpy 数组并返回会更改颜色。

此屏幕截图显示了数组的内容

我尝试了不同的图像加载模式(RGB、灰度)、dtype 类型转换 - 没有任何帮助。 我希望能够在转换后以原始形式保存图像。

原图

转换后

python numpy keras python-imaging-library
1个回答
0
投票

array_to_img
默认重新缩放图像(请参阅文档中的默认值:
scale=True
)。这意味着,当您的
array
(在本例中为变量
b
)的值范围不在 0 到 255 之间时,它将重新调整比例。因此,您需要通过将
scale
参数设置为 false 来停用缩放:

c = array_to_img(b, scale=False)
© www.soinside.com 2019 - 2024. All rights reserved.