MNIST数据集简介
# MNIST 数据集合共包含70000张手写数字图片
# 其中60000张用作训练集
# 10000张用作预测集
# 数据集包含了0-9共10类手写数字图片,每张
# 图片都做了尺寸归一化,都是28x28大小的灰
# 度图。每张图片中像素值大小在0-255之间,
# 其中0是黑色背景,255是白色前景
# 文件数据是以二进制文件进行存储的
# **************************************#
# train-images-indx3-ubyte.gz # 训练集图片
# train-labels-indx1-ubyte.gz # 训练集标签
# t10k-images-idx3-ubyte.gz # 预测集图片
# t10k-labels-idx1-ubyte.gz # 预测集标签
# ******************************图像文件**********************#
# 一张照片包含28*28=784 个像素点,需要784bytes的存储空间
# 60000张图片则需要784*60000=47040000bytes的存储空间
# 文件开始处使用了16个bytes用于存储magic number、图像数量
# 图像高度和图像宽度,因此,训练集图像文件的大小应该是
# 47040000+16 = 47040016 bytes
# 1-4 个bytes 存的是文件的magic number
# 5-8 个bytes 存的是图像的个数,60000
# 9-12 个bytes 存的是每张图片的行数/高度,28
# 13-16 个bytes 存的是每张图片的列数/宽度,28
# 从第17个byte开始,每个byte存储一张图片中的一个像素点
# *****************************标签文件**********************#
# 一个数字占有1Byte
# 1*60000+8=60008bytes
# 1-4 个bytes存储的是文件的magic number
# 5-8 个bytes存的是number of items 即label数量60000
# 从9个byte开始,每个byte存一个照片的label信息,即数字0-9中的一个
代码
# coding=utf-8
'''将二进制格式的MNIST数据集转成.jpg图片格式并保存,图片标签包含在图片名中'''
import numpy as np
import cv2
import os
def save_mnist_to_jpg(mnist_image_file, mnist_label_file, save_dir):
if 'train' in os.path.basename