前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matlab遍历文件制作自己的数据集 .mat文件

matlab遍历文件制作自己的数据集 .mat文件

作者头像
徐飞机
发布2018-06-21 11:03:57
2.3K0
发布2018-06-21 11:03:57
举报

看到深度学习里面的教学动不动就是拿MNIST数据集,或者是IMGPACK数据集来教学,这些都是已经制作好的数据集,我们大家肯定都很疑惑怎么制作自己的数据集呢?

接下来我就自己制作了一个数据集,图片3600张,每张的高宽分别为240-320

获取根目录下所有子文件夹:

代码语言:javascript
复制
PathRoot = 'F:\process\finger_vein-master\db100';
list = dir(PathRoot);

获取在下一层的所有子文件夹,因为我们的数据很多时候都是不在一个文件夹,或者是在一个大文件夹中的很多小文件中,所以这时候就需要多重遍历,一层,一层的遍历下去,拿到我们想要的所有数据

  至于这里为什么是 3 开始?  这是因为dir()函数会将 文件夹的   . 和 .. 路径。

  估计你们不懂(dir()函数会将 文件夹的   . 和 .. 路径。)我这什么意思,简单。直接打印一下出来看看就知道了。  打印 list(1).name     list(2).name   打印完看看输出 你们就知道我的意思了

代码语言:javascript
复制
for i = 3:fileNums
    subList = dir([PathRoot '\' list(i).name]);
end

好了接下来把所有代码给出:

下面就是遍历一个F:\process\finger_vein-master\db100\098\left  这样的路径,数据都在db100 里面的每一个小文件夹(001-002-003)中的left  和 right 中

这里用matlab 三重遍历文件提取数据 

最后全部保存在 imgPack中

在用 save 的函数 将数据集保存成   .mat 文件

代码语言:javascript
复制
PathRoot = 'F:\process\finger_vein-master\db100';
num = 1;

list = dir(PathRoot);
fileNums = size(list);
imgPack = zeros(240,320,3600);
for i = 3:fileNums
    subList = dir([PathRoot '\' list(i).name]);
    for j =3:size(subList)
        lastList = dir([PathRoot '\' list(i).name '\' subList(j).name]);
        for k = 3:size(lastList)
            path = [PathRoot '\' list(i).name '\' subList(j).name '\' lastList(k).name];
            image = imread(path);
            grayImg = rgb2gray(image);
            imgPack(:,:,num) = grayImg;
            num = num + 1;    
        end
    end
end
save imgPack imgPack;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-05-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档