matlab代码(亲测,可运行出来):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | % Matlab_Read_t10k-images_idx3.m % 用于读取MNIST数据集中t10k-images.idx3-ubyte文件并将其转换成bmp格式图片输出。 % 用法:运行程序,会弹出选择测试图片数据文件t10k-labels.idx1-ubyte路径的对话框和 % 选择保存测试图片路径的对话框,选择路径后程序自动运行完毕,期间进度条会显示处理进度。 % 图片以TestImage_00001.bmp~TestImage_10000.bmp的格式保存在指定路径,10000个文件占用空间39M。。 % 整个程序运行过程需几分钟时间。 clear all ; clc ; %读取训练图片数据文件 [FileName,PathName] = uigetfile ( '*.*' , '选择测试图片数据文件t10k-images.idx3-ubyte' ); TrainFile = fullfile (PathName,FileName); fid = fopen (TrainFile, 'r' ); %fopen()是最核心的函数,导入文件,‘r’代表读入 a = fread (fid,16, 'uint8' ); %这里需要说明的是,包的前十六位是说明信息,从上面提到的那个网页可以看到具体那一位代表什么意义。所以a变量提取出这些信息,并记录下来,方便后面的建立矩阵等动作。 MagicNum = ((a(1)*256+a(2))*256+a(3))*256+a(4); ImageNum = ((a(5)*256+a(6))*256+a(7))*256+a(8); ImageRow = ((a(9)*256+a(10))*256+a(11))*256+a(12); ImageCol = ((a(13)*256+a(14))*256+a(15))*256+a(16); %从上面提到的网页可以理解这四句 if ((MagicNum~=2051)||(ImageNum~=10000)) error ( '不是 MNIST t10k-images.idx3-ubyte 文件!' ); fclose (fid); return ; end %排除选择错误的文件。 savedirectory = uigetdir ( '' , '选择测试图片路径:' ); h_w = waitbar (0, '请稍候,处理中>>' ); for i =1:ImageNum b = fread (fid,ImageRow*ImageCol, 'uint8' ); %fread()也是核心的函数之一,b记录下了一副图的数据串。注意这里还是个串,是看不出任何端倪的。 c = reshape (b,[ImageRow ImageCol]); %亮点来了,reshape重新构成矩阵,终于把串转化过来了。众所周知图片就是矩阵,这里reshape出来的灰度矩阵就是该手写数字的矩阵了。 d = c'; %转置一下,因为c的数字是横着的。。。 e = 255-d; %根据灰度理论,0是黑色,255是白色,为了弄成白底黑字就加入了e e = uint8 (e); savepath = fullfile (savedirectory,[ 'TestImage_' num2str ( i ,d) '.bmp' ]); imwrite (e, savepath , 'bmp' ); %最后用imwrite写出图片 waitbar ( i /ImageNum); end fclose (fid); close (h_w); |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」