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

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

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

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

PathRoot = 'F:\process\finger_vein-master\db100';
list = dir(PathRoot);

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

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

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

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 文件

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;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

扫码关注云+社区