下载的数据集格式是字节存储的,有时需要转为图片格式,以下以测试集为例子,说明python转换代码。

IDX数据格式

这四个文件采用了IDX的文件格式,一种平铺直叙的方式:

magic number

size in dimension 0

size in dimension 1

.....

size in dimension N

data

其中magic number为4字节,前2字节永远是0,第3字节代表数据的格式:
0x08: unsigned byte
0x09: signed byte
0x0B: short (2 bytes)
0x0C: int (4 bytes)
0x0D: float (4 bytes)
0x0E: double (8 bytes)

第4字节的含义表示维度的数量(dimensions): 1 表示一维(比如vectors), 2 表示二维( 比如matrices),3表示三维(比如numpy表示的图像,高,宽,通道数)。

训练集和测试集的标签文件的格式(train-labels-idx1-ubyte和t10k-labels-idx1-ubyte)

1,前4个字节(第0~3个字节)是魔数2049(int型,0x00000801, 大端);

2,再往后4个字节(第4~7个字节)是标签的个数:60000或10000;

3,再往后每1个字节是一个无符号型的数,值为0~9。

import os
import cv2
import numpy as npdef save_mnist_to_jpg(dataset_path, output_path): #parameters:(数据集所在路径,最后输出存储路径)files = os.listdir(dataset_path)#生成image_file路径mnist_image_file = os.path.join(dataset_path, [f for f in files if "image" in f][0])#生成label_file路径  mnist_label_file = os.path.join(dataset_path, [f for f in files if "label" in f][0])save_dir = output_pathnum_file = 10000height, width = 28, 28size = height * widthprefix = 'test'#二进制形式读取文件with open(mnist_image_file, 'rb') as f1:  image_file = f1.read()with open(mnist_label_file, 'rb') as f2:label_file = f2.read()image_file = image_file[16:]     #将所读数据进行切片,去掉开头16字节label_file = label_file[8:]   for i in range(num_file):label = label_file[i]image_list = [item for item in image_file[i * size:i * size + size]]image_np = np.array(image_list, dtype=np.uint8).reshape(height, width)save_name = os.path.join(save_dir, '{}_{}_{}.jpg'.format(prefix, i, label))cv2.imwrite(save_name, image_np)print("=" * 20, "preprocess data finished", "=" * 20)if __name__ == '__main__':save_mnist_to_jpg('你的数据集所在路径','最后图片存储位置')

最后结果:

python 将MNIST数据集转为jpg图片格式相关推荐

  1. MNIST数据集转为.jpg图片格式

    从mnist官网下载下来的mnist手写数据集是二进制文件流格式的,不能直接查看,如果需要查看,需要将二进制文件转化为jpg格式,可以用各种编程语言实现,如MATLAB.Python.C++等,本文是 ...

  2. 使用Python将MNIST数据集转化为图片

    1,对于训练集数据: import numpy as np import structfrom PIL import Image import osdata_file = 'somePath/trai ...

  3. python 读取 MNIST 数据集,并解析为图片文件

    python 读取 MNIST 数据集,并解析为图片文件 MNIST 是 Yann LeCun 收集创建的手写数字识别数据集,训练集有 60,000 张图片,测试集有 10,000 张图片.数据集链接 ...

  4. 项目:机器学习+FLD分类+python图像处理mnist数据集

    机器学习+FLD分类+python图像处理mnist数据集 ** 以mnist数据集实现Fisher Linear Discriminant(FLD)的分类以及降维功能 任务一如下所示 以下任务是te ...

  5. python处理MNIST数据集

    1. MNIST数据集 1.1 MNIST数据集获取 MNIST数据集是入门机器学习/模式识别的最经典数据集之一.最早于1998年Yan Lecun在论文: Gradient-based learni ...

  6. 基于jupyter notebook的python编程-----MNIST数据集的的定义及相关处理学习

    基于jupyter notebook的python编程-----MNIST数据集的相关处理 一.MNIST定义 1.什么是MNIST数据集 2.python如何导入MNIST数据集并操作 3.接下来, ...

  7. [深度学习-实践]GAN基于手写体Mnist数据集生成新图片

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之基于CIFAR10数据集的例子 深度学习GAN(三)之基于手写体Mnist数据集的例子 深度学习GAN(四)之PIX2PIX GAN ...

  8. CAD手机看图软件中怎么将CAD图纸转为PDF/图片格式?

    在使用CAD手机看图软件查看CAD图纸的时候,偶尔会遇到需要将CAD图纸转为PDF/图片格式的情况,这个时候该如何进行操作呢?下面给大家介绍一下在CAD手机看图软件浩辰CAD看图王中是如何进行操作的吧 ...

  9. 用python将照片做成数据集_python实战项目,struct模块的使用,将MNIST数据集转换为bmp图片...

    最近学习 tensroflow,用到了入门级的经典数据集 MNIST,MNIST 包含几万张 28x28 像素大小的手写数字.但是它的存储是以字节流的形式存储的,几万张图片存储在一个文件里.一直对其很 ...

最新文章

  1. 如何在Java中生成特定范围内的随机整数?
  2. magento 加速(.htaccess)
  3. 一个基于C++的多线程编程实例(CreateThread函数)
  4. 看文艺青年怎么玩微信客户端
  5. LiveVideoStack线上分享第五季(九):语音合成中的风格控制
  6. .NET Core IdentityServer4实战 第Ⅳ章-集成密码登陆模式
  7. 借助xxl-sso实现SSO
  8. 4.Unix工作环境
  9. ORACLE 10g下载|ORACLE 10g下载地址|ORACLE 10g官网下载地址
  10. matlab gui 图像增强,基于MATLAB GUI的图像增强技术的实现
  11. 计算机过程控制系统李向舜pdf,2010-2011学年一学期(16-19周)考试安排表(1)
  12. bat中获取bat命令结果
  13. 141种各类工业常用软件
  14. Kubernetes实践:使用k8s部署微服务应用
  15. php 7.4 编译安装
  16. win 如何生成ssh密钥
  17. Office2016和Office365有什么区别
  18. Mohican_4/6 C语言 移位运算 代码#FloatToInt
  19. truelicense使用手册
  20. 基于Java+Springmvc+vue+element员工信息管理系统详细设计

热门文章

  1. 什么是私域?全网最干的干货解析!
  2. Axure8.0教程:自动带出邮箱
  3. 【问题解决指北】Win10电脑中文用户名修改为英文
  4. 磨金石教育摄影技能干货分享|风光摄影如何取景和用光
  5. 回忆PHTOTSHOP技巧-滤镜技巧篇
  6. 利用Selenium自动化测试android wap页
  7. 武汉坚守第三十三天——信任危机起风波,出手控价安民心
  8. mysql unpivot_SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子...
  9. 固体物理分子模拟实验(一)
  10. 微信开发者工具进入页面卡死