python 将MNIST数据集转为jpg图片格式
下载的数据集格式是字节存储的,有时需要转为图片格式,以下以测试集为例子,说明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图片格式相关推荐
- MNIST数据集转为.jpg图片格式
从mnist官网下载下来的mnist手写数据集是二进制文件流格式的,不能直接查看,如果需要查看,需要将二进制文件转化为jpg格式,可以用各种编程语言实现,如MATLAB.Python.C++等,本文是 ...
- 使用Python将MNIST数据集转化为图片
1,对于训练集数据: import numpy as np import structfrom PIL import Image import osdata_file = 'somePath/trai ...
- python 读取 MNIST 数据集,并解析为图片文件
python 读取 MNIST 数据集,并解析为图片文件 MNIST 是 Yann LeCun 收集创建的手写数字识别数据集,训练集有 60,000 张图片,测试集有 10,000 张图片.数据集链接 ...
- 项目:机器学习+FLD分类+python图像处理mnist数据集
机器学习+FLD分类+python图像处理mnist数据集 ** 以mnist数据集实现Fisher Linear Discriminant(FLD)的分类以及降维功能 任务一如下所示 以下任务是te ...
- python处理MNIST数据集
1. MNIST数据集 1.1 MNIST数据集获取 MNIST数据集是入门机器学习/模式识别的最经典数据集之一.最早于1998年Yan Lecun在论文: Gradient-based learni ...
- 基于jupyter notebook的python编程-----MNIST数据集的的定义及相关处理学习
基于jupyter notebook的python编程-----MNIST数据集的相关处理 一.MNIST定义 1.什么是MNIST数据集 2.python如何导入MNIST数据集并操作 3.接下来, ...
- [深度学习-实践]GAN基于手写体Mnist数据集生成新图片
系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之基于CIFAR10数据集的例子 深度学习GAN(三)之基于手写体Mnist数据集的例子 深度学习GAN(四)之PIX2PIX GAN ...
- CAD手机看图软件中怎么将CAD图纸转为PDF/图片格式?
在使用CAD手机看图软件查看CAD图纸的时候,偶尔会遇到需要将CAD图纸转为PDF/图片格式的情况,这个时候该如何进行操作呢?下面给大家介绍一下在CAD手机看图软件浩辰CAD看图王中是如何进行操作的吧 ...
- 用python将照片做成数据集_python实战项目,struct模块的使用,将MNIST数据集转换为bmp图片...
最近学习 tensroflow,用到了入门级的经典数据集 MNIST,MNIST 包含几万张 28x28 像素大小的手写数字.但是它的存储是以字节流的形式存储的,几万张图片存储在一个文件里.一直对其很 ...
最新文章
- 如何在Java中生成特定范围内的随机整数?
- magento 加速(.htaccess)
- 一个基于C++的多线程编程实例(CreateThread函数)
- 看文艺青年怎么玩微信客户端
- LiveVideoStack线上分享第五季(九):语音合成中的风格控制
- .NET Core IdentityServer4实战 第Ⅳ章-集成密码登陆模式
- 借助xxl-sso实现SSO
- 4.Unix工作环境
- ORACLE 10g下载|ORACLE 10g下载地址|ORACLE 10g官网下载地址
- matlab gui 图像增强,基于MATLAB GUI的图像增强技术的实现
- 计算机过程控制系统李向舜pdf,2010-2011学年一学期(16-19周)考试安排表(1)
- bat中获取bat命令结果
- 141种各类工业常用软件
- Kubernetes实践:使用k8s部署微服务应用
- php 7.4 编译安装
- win 如何生成ssh密钥
- Office2016和Office365有什么区别
- Mohican_4/6 C语言 移位运算 代码#FloatToInt
- truelicense使用手册
- 基于Java+Springmvc+vue+element员工信息管理系统详细设计
热门文章
- 什么是私域?全网最干的干货解析!
- Axure8.0教程:自动带出邮箱
- 【问题解决指北】Win10电脑中文用户名修改为英文
- 磨金石教育摄影技能干货分享|风光摄影如何取景和用光
- 回忆PHTOTSHOP技巧-滤镜技巧篇
- 利用Selenium自动化测试android wap页
- 武汉坚守第三十三天——信任危机起风波,出手控价安民心
- mysql unpivot_SQL(横表和纵表)行列转换,PIVOT与UNPIVOT的区别和使用方法举例,合并列的例子...
- 固体物理分子模拟实验(一)
- 微信开发者工具进入页面卡死