-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatasetsplit.m
39 lines (37 loc) · 1 KB
/
datasetsplit.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
clc; clear;
dir_root = pwd;
name_mask = '2';
dir_dataset = fullfile(dir_root,'dataset',name_mask);
dir_train = fullfile(dir_dataset,'train');
if ~exist(dir_train,'dir')
mkdir (dir_train)
end
dir_test = fullfile(dir_dataset,'test');
if ~exist(dir_test,'dir')
mkdir (dir_test)
end
dir_val = fullfile(dir_dataset,'val');
if ~exist(dir_val,'dir')
mkdir (dir_val)
end
fileExt = '*.png';
fnames = dir(fullfile(dir_dataset,fileExt));
len = size(fnames,1);
train_num = round(0.6*len);
val_num = round(0.2*len);
mark = randperm(len);
train_mark = mark(1:train_num);
val_mark = mark(train_num+1:train_num+val_num);
for i = 1:len
file_name = fnames(i,1).name;
if (ismember(i,train_mark))
file_dir = fullfile(dir_dataset,file_name);
copyfile(file_dir,dir_train);
elseif(ismember(i,val_mark))
file_dir = fullfile(dir_dataset,file_name);
copyfile(file_dir,dir_val);
else
file_dir = fullfile(dir_dataset,file_name);
copyfile(file_dir,dir_test);
end
end