PNG 转换为 Scikit learn 数字格式

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

我需要一些帮助才能将 PNG RGBA 转换为 Scikit learn 中数字识别的正确格式。这是我的代码

image = Image.open(image_path)
print (image.size)
print (image.mode)
print (image.format)


image = image.resize((8, 8)).convert("L")
print (image.size)
print (image.mode)
print (image.format)


data = np.array(image)

data = data / 16.0
data = data.reshape(1, -1)
print (data.shape)
print (data)

print (model.predict(data))

convert 方法总是转换为全 0 的正确大小的数组。

网上一些文章建议使用convert("LA"),因为RGBA格式,但如果我这样做,结果数组的大小是错误的,我不明白如何将其转换为正确的8x8。

这是测试图像的链接(png 文件,已压缩以避免任何更改)。

python scikit-learn
1个回答
0
投票

这是因为您的图像在 RGB 通道中是纯黑色的,而您要查找的数字 7 仅包含在 A 通道中(A=alpha 或透明度)。

如果我将你的图像分成其组成的 R、G、B、A 通道,并在每个通道周围放置黄色边框,则 “squidge” 将它们从左到右一起穿过页面,并使用 ImageMagick

magick YOURIMAGE -separate -bordercolor yellow -border 3 +append result.png

enter image description here

所以,基本上你只需要使用

A
通道:

from PIL import Image

RGBA = Image.open('YOURIMAGE')

A = RGBA.getchannel('A')
© www.soinside.com 2019 - 2024. All rights reserved.