matlab遍历文件制作自己的数据集 .mat文件
?
原文作者:aircraft
原文地址:https://www.cnblogs.com/DOMLX/p/9115788.html
?
看到深度學習里面的教學動不動就是拿MNIST數據集,或者是IMGPACK數據集來教學,這些都是已經制作好的數據集,我們大家肯定都很疑惑怎么制作自己的數據集呢?
?
接下來我就自己制作了一個數據集,圖片3600張,每張的高寬分別為240-320
?
獲取根目錄下所有子文件夾:
PathRoot = 'F:\process\master\100'; list = dir(PathRoot);?
?
獲取在下一層的所有子文件夾,因為我們的數據很多時候都是不在一個文件夾,或者是在一個大文件夾中的很多小文件中,所以這時候就需要多重遍歷,一層,一層的遍歷下去,拿到我們想要的所有數據
至于這里為什么是 3 開始?? 這是因為dir()函數會將 文件夾的?? . 和 .. 路徑。
估計你們不懂(dir()函數會將 文件夾的?? . 和 .. 路徑。)我這什么意思,簡單。直接打印一下出來看看就知道了。? 打印 list(1).name???? list(2).name?? 打印完看看輸出 你們就知道我的意思了
for i = 3:fileNumssubList = 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\master\100'; num = 1;list = dir(PathRoot); fileNums = size(list); imgPack = zeros(240,320,3600); for i = 3:fileNumssubList = 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; endend end save imgPack imgPack;?
轉載于:https://www.cnblogs.com/DOMLX/p/9115788.html
總結
以上是生活随笔為你收集整理的matlab遍历文件制作自己的数据集 .mat文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 移动端列表点击跳转 返回保存原来高度
- 下一篇: gscatter in matlab S