处理图像时,将 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 类型转换 - 没有任何帮助。 我希望能够在转换后以原始形式保存图像。
array_to_img
默认重新缩放图像(请参阅文档中的默认值:scale=True
)。这意味着,当您的 array
(在本例中为变量 b
)的值范围不在 0 到 255 之间时,它将重新调整比例。因此,您需要通过将 scale
参数设置为 false 来停用缩放:
c = array_to_img(b, scale=False)