在做机器学习时经常要分类读取数据,自己写还是有点繁琐的,MATLAB已经内嵌的imageDatastore使用起来很方便。
imageDatastore()函数用于读取指定路径下的所有文件
使用语法:
ImageDatastore(path,Name,Value)
输入参数为文件(夹)路径,以及一些键值对,输出为一个ImageDatastore对象。
直接看例子吧,现在要读取下图MNIST的训练集

path_train = 'F:\手写体识别\新建文件夹\train';
imds_train = imageDatastore(path_train,'IncludeSubfolders',true,'FileExtensions','.jpg',...'LabelSource','foldernames');path_train = 'F:\手写体识别\新建文件夹\train';
folders_train = fullfile(path_train,{'0' '1' '2' '3' '4' '5' '6' '7' '8' '9'});
imds_train = imageDatastore(folders_train, 'FileExtensions','.jpg',...'LabelSource','foldernames');

两种输出结果是一样的,区别在于imageDatastore的输入路径,如果只输入上级目录(上图的train),则需要加上’IncludeSubfolders’,true键值对输入。上面代码已经涵盖了常用的三个键值对。Fullfile也是很好用的函数。
‘IncludeSubfolders’ :是否包含子文件夹
‘FileExtensions’ :文件扩展名
‘LabelSource’ :Label来源
此外,‘ReadSize’:使用read()函数每次读取多少文件
输出结果如下:

imds_train = ImageDatastore - 属性:Files: {'F:\手写体识别\新建文件夹\train\0\0_1.jpg';'F:\手写体识别\新建文件夹\train\0\0_10.jpg';'F:\手写体识别\新建文件夹\train\0\0_100.jpg'... and 59997 more}Folders: {'F:\手写体识别\新建文件夹\train'}Labels: [0; 0; 0 ... and 59997 more categorical]AlternateFileSystemRoots: {}ReadSize: 1SupportedOutputFormats: [1×5 string]DefaultOutputFormat: "png"ReadFcn: [function_handle]

已经读取到60000个训练数据的文件路径和对应的label,注意这里只读取了文件路径,并没有读入数据,而且也不需要专门读出来。

最后介绍ImageDatastore对象的几个常用对象函数

  • countEachLabel
    作用:对每种标签的数据进行计数
    用法:countEachLabel(imdsn)
    注:imds为ImageDatastore对象,下同
  • preview
    作用:读取一个数据,经过测试好像就是读取第一个,像是一个预览的功能
    用法:preview(imds)
  • read
    作用:从ImageDatastore对象中读出数据,注意这里直接是数据了,一次读取ReadSize个,而且是顺序读取,比如我第一次使用read(imds),返回前ReadSize个数据,再使用read(imds),返回的是ReadSize+1~2*ReadSize的数据,像是batchsize
    用法:read(imds)
  • readall
    作用:读取所有数据
    用法:readall(imds)
  • readimage
    作用:按索引读取图像
    用法:readimage(imds,i),i代表第i个数据
  • hasdata
    作用:判断是否有数据可读,如果ImageDatastore里的数据不够一个ReadSize了,则为hasdata(imds)会返回0
    用法:hasdata(imds)
  • reset
    作用:将数据存储重置为初始状态,相当于重置了read函数,从头开始读
    用法:reset(imds)
  • shuffle
    作用:打乱数据顺序
    用法:shuffle(imds)
  • splitEachLabel
    作用:按比例拆分数据,每个标签都拆分相同比例
    用法:splitEachLabel(imds,0.8,0.2)
  • combine
    作用:合并数据集
    用法:combine(imds1,imds2,…,imsdN)

Matlab:数据集读取 imageDatastore() 的用法相关推荐

  1. matlab读取视频VideoRead用法

    声明:转载自博主酌希的博文matlab读取视频VideoRead,原文链接点击打开链接,仅供参考学习. 看到以前matlab中读取视频多使用mmreader等(参考<matlab读取/播放视频的 ...

  2. matlab如何excel数据,Matlab如何读取Excel里的数据

    Matlab如何读取Excel里的数据呢?一起看看下面这篇文章吧! 我们可以使用xlswrite,用法是这样的:xlswrite('Excel路径+Excel的名称','需要输出的矩阵名称')当然,如 ...

  3. matlab sheet名字,MATLAB得到excel多个非默认sheet名_怎样利用matlab去读取一个excel表中多个sheet的数据并导入一个sheet中?...

    如何用matlab读取一个excel表格中的若干个工作表 如果数字: xlsread('e:/shiyanshuju/shiyanbiaoge','sheet1','B1:D1440') 最好个表格放 ...

  4. MATLAB批量读取航摄相片EXIF信息和GNSS信息以及MATLAB批量经纬度坐标转换空间直角坐标

    前言 没有前言,创作不易,希望家人们点点赞,如有错误评论留言,感谢支持! 文章目录 前言 一.MATLAB批量读取航摄相片的EXIF信息,并批量提取其GNSS经纬度信息 (1)前述: (2)代码实现和 ...

  5. matlab文件名批量读取dat文件,matlab批量读取dat

    matlab如何生成数据dat文件_数学_自然科学_专业资料.第一种方法:sav... matlab中读取txt中数据 2页 1下载券 MATLAB读取文本格式数据 21页 1下载券 用Matlab读 ...

  6. matlab中读入sav,matlab数据读取与存入详解

    matlab数据读取与存入详解 在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件.MATLAB使用多种格式打开和保存数据.本章将要介绍 MATLAB中文件的读写和数据的导入导出 ...

  7. matlab imfilter函数,Matlab中imfilter()函数的用法

    Matlab中imfilter()函数的用法 功能:对任意类型数组或多维图像进行滤波. 用法:B = imfilter(A,H) B = imfilter(A,H,option1,option2,.. ...

  8. 如何matlab导入邻接矩阵,“excel如何做矩阵“matlab中读取excle中的邻接矩阵

    怎么在excel中使用矩阵函数 在excel中使用矩阵: 1.矩阵乘法运算择G3:H4,公式:=MMULT(A3:B4,D3:E4) 按Ctrl Shift Enter键,即输组公式. 2.阵的逆矩阵 ...

  9. matlab i型级联filter,Matlab中filter,conv,impz用法(最新整理)

    <Matlab中filter,conv,impz用法(最新整理)>由会员分享,可在线阅读,更多相关<Matlab中filter,conv,impz用法(最新整理)(5页珍藏版)> ...

最新文章

  1. python元组的定义方式_序列之元组详解
  2. swift学习笔记之-析构过程
  3. Python PIP Install throws TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'
  4. 1349. 修理牛棚【难度: 中 / 思维 贪心】
  5. 云南昭通暴雨强度公式_江门市区暴雨强度公式编制报告(图表)-江门市水务局.doc...
  6. C# CAD二次开发之字体替换 文字样式 处理DBText
  7. Python读写Excel实现大量数据处理
  8. JAVA WEB 复习资料
  9. 中国互联网公司如何进军海外,先行者六点血泪教训
  10. length () 和 length 的区别
  11. 红黑树(一)的原理和算法详细介绍
  12. 单线激光雷达为什么这么火?
  13. go http post请求
  14. Google全系列产品不再信任赛门铁克某款根证书
  15. proxmox换源_安装proxmox后注意事项
  16. C语言程序设计(第三版)
  17. MATLAB Handle类的set和get方法
  18. Adobe Acrobat Reader DC 2019 (19.8)
  19. php代码审计备忘录
  20. log4j输出系统抛出的异常

热门文章

  1. 复杂网络(2)--图论的基本理论-最小生成树问题
  2. Excel高效实战: 提高桌面生产力(系列06-10)
  3. python编写阅卷软件_利用Python开发智能阅卷系统
  4. 源恒软件房地产税务软件项目监控系统
  5. 数据结构——贪心算法
  6. 拼多多打标,拼多多号搜索打标原理,拼多多打标源码,拼多多足迹接口,多多号打标,拼多多打标接口,拼多多号打标有什么影响,拼多多号打标是什么,魔搜拼多多版本,服务市场的打标接口
  7. C# winform 手写签名,流畅不卡顿,在触摸屏上也可以完美使用,自动保存签名至本地(附源码下载)
  8. 第11章 人机交互设计 第12章 详细设计的基础课后习题答案
  9. 计算机专业的大学生vlog日常,【干货分享】手把手教你拍好在校大学生的VLOG
  10. 图解几个与Linux网络虚拟化相关的虚拟网卡-VETH/MACVLAN/MACVTAP/IPVLAN