利用Matlab生成文字格式的影象目錄及分類標籤
阿新 • • 發佈:2018-12-16
話不多說,直接上程式碼,有問題請留言
clc;clear;close; %% 生成txt格式的影象分類標籤 path='D:\人工智慧\影象識別資料\'; folders=dir(path);% dir是direcory的縮寫,是目錄的意思,返回的folders是結構體,包含所有的目錄和兩個特殊的目錄,一個是“.”,代表該資料夾本身,還有一個是“..”,代表該資料夾的上一層資料夾 fid_train=fopen('D:\人工智慧\影象識別資料\train.txt','wt'); fid_test=fopen('D:\人工智慧\影象識別資料\test.txt','wt'); num_folders=numel(folders); for i=3:num_folders folders_name=folders(i).name; files=dir([path folders_name '\*.jpg']);% 僅列出裡面jpg格式的檔案 x=numel(files); y=randperm(x);% 打亂影象的順序 for j=1:x if j<=390 fprintf(fid_train,'%s %s\n',['\' folders(i).name '\' files(y(j)).name],folders_name);% 在train.txt裡面寫入目錄及標籤 else fprintf(fid_test,'%s %s\n',['\' folders(i).name '\' files(y(j)).name],folders_name);% 在test.txt裡面寫入目錄及標籤 end end end fclose(fid_train); fclose(fid_test);
效果如下:
train.txt
\1\0483.jpg 1 \1\0123.jpg 1 \1\0393.jpg 1 \1\0458.jpg 1 \1\0074.jpg 1 \1\0367.jpg 1 \1\0236.jpg 1 \1\0471.jpg 1 \1\0291.jpg 1 \1\0052.jpg 1
....................
test.txt
\1\0056.jpg 1 \1\0012.jpg 1 \1\0372.jpg 1 \1\0010.jpg 1 \1\0414.jpg 1 \1\0423.jpg 1 \1\0355.jpg 1 \1\0411.jpg 1 \1\0311.jpg 1 \1\0138.jpg 1 \1\0386.jpg 1 \1\0473.jpg 1 \1\0178.jpg 1 ....................