如何打开从MNIST数据库中提取的图像

时间:2019-05-15 06:42:39

标签: python python-3.x mnist

基本上,我正在尝试从MNIST数据集中获取图像,然后将其显示在计算机上。问题是,当我尝试打开单个图像(使用枕头Image.open()函数)时,它说它无法“读取”它。我无法判断这是单件事情还是全部失败。真的,我只是在弄些新东西。

我尝试使用'tensorflow.examples.tutorials.mnist',但是它只是在不断堆积,我不知道为什么。然后我决定只下载MNIST数据并打开它,现在它说它无法“读取”“ numpy.ndarray”。

from PIL import Image
from tensorflow.contrib.learn.python.learn.datasets.mnist import extract_images, extract_labels

with open('train-images-idx3-ubyte (2).gz', 'rb') as f:
  train_images = extract_images(f)
with open('train-labels-idx1-ubyte (1).gz', 'rb') as f:
  train_labels = extract_labels(f)

with open('t10k-images-idx3-ubyte.gz', 'rb') as f:
  test_images = extract_images(f)
with open('t10k-labels-idx1-ubyte.gz', 'rb') as f:
  test_labels = extract_labels(f)

myImage = Image.open(train_images[0])
myImage.show()

我希望它可以打开文件,但是显示出来只是关于打开train_images[0]

的错误

1 个答案:

答案 0 :(得分:0)

没关系,我找到了答案。

您需要做的是使用np.reshape()更改数据的形状,然后使用Image.fromarray()代替Image.open()。 例如:

MyImage = train_images[0]
MyImage = MyImage.reshape(28, 28)
MyImage = Image.fromarray(MyImage)