使用NumPy获取MNIST图片

MNIST图片

在 MNIST 数据集中的每张图片由 28 * 28 个像素点构成,每个像素点用一个灰度值表示。在这里,我们将 28 * 28 的像素展开并将其写入到指定目录。

首先,我们建立展开后的目录,我的配置如下图。也就是在minst_data(道歉,才发现目录写错)下建立 mnist_train 目录。

Python代码

import struct
import numpy as np
#import matplotlib.pyplot as plt
import PIL.Image

filename='minst_data/train-images-idx3-ubyte'
binfile=open(filename,'rb')
buf=binfile.read()
index=0
magic,numImages,numRows,numColumns=struct.unpack_from('>IIII',buf,index)
index+=struct.calcsize('>IIII')
for image in range(0,numImages):
    im=struct.unpack_from('>784B',buf,index)
    index+=struct.calcsize('>784B')
    im=np.array(im,dtype='uint8')
    im=im.reshape(28,28)
    im=PIL.Image.fromarray(im)
    im.save('minst_data/mnist_train/train_%s.bmp'%image,'bmp')

注意目录的位置要和自己机器上配置一致。

运行结果

代码运行后,可以在 mnist_train 目录下得到对应的原始图片。如下图所示。图片比较多,耐心等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的老周

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值