繁体   English   中英

将数字图像转换为 numpy 数组时出现问题

[英]Problem in converting digit image to numpy array

我正在练习 MNIST 数字数据集。 我很高兴能用任何方法将我的手写数字转换为 numpy 数组。 但是没有得到预期的结果。 这是我在photoshop中写的: 用 Photoshop 写的 8 的图像

用 Photoshop 写的 7 的图像

然后我编写了一个将 png 图像转换为 np 数组的代码,如下所示:

from PIL import Image
img  =Image.open('New Project (11).png')
img_arr = np.array(img)
img_arr = img_arr.flatten()
img_arr = img_arr.astype('float64')
some_digit = img_arr.reshape(28,28)

import matplotlib as mpl
import matplotlib.pyplot as plt

plt.imshow(some_digit,cmap='binary')

给出的结果是这样的:

在此处输入图像描述 在此处输入图像描述

我做错了什么或其他简单的选择。 谢谢你的帮助。

我发现了问题。 我从图像转换的 numpy 数组实际上是正确的。 出于某种原因,它显示出不同。 我使用了 skimage 而不是 PIL 并反转了图像并且它起作用了。 代码如下:


import skimage.io as lo
from skimage import util 
img = lo.imread("New Project (16).png")
img = util.invert(img)
img_arr = np.array(img)
img_arr = img_arr.flatten()

# type(img_arr)
img_arr = img_arr.astype('float64')

some_digit = img_arr.reshape(28,28)
# some_digit = np.invert(some_digit)
# some_digit

import matplotlib as mpl
import matplotlib.pyplot as plt

# some_digit = X[0]
# some_digit_image = some_digit.reshape(28,28)

plt.imshow(some_digit,cmap='binary')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM