forked from lab-smile/DOMINO
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmake_datalist_json.m
97 lines (87 loc) · 2.81 KB
/
make_datalist_json.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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
% fname = 'dataset_2.json';
% fid = fopen(fname);
% raw = fread(fid,inf);
% str = char(raw');
% fclose(fid);
% val = jsondecode(str);
description = 'AISEG V5 - Code Validation';
labels = struct('xO', 'background', ...
'x1', 'wm', ...
'x2', 'gm', ...
'x3', 'eyes', ...
'x4', 'csf', ...
'x5', 'air', ...
'x6', 'blood', ...
'x7', 'cancellous', ...
'x8', 'cortical', ...
'x9', 'skin', ...
'x10', 'fat', ...
'x11', 'muscle');
license = 'UF';
modality = struct('x0', 'T1');
numTest = length(dir(fullfile('imagesTs', '*.nii')));
numTraining = length(dir(fullfile('imagesTr', '*.nii')));
testdir = dir(fullfile('imagesTs', '*.nii'));
for i = 1 : length(testdir)
test(i,1) = {fullfile('imagesTs',testdir(i).name)};
end
traindir = dir(fullfile('imagesTr', '*.nii'));
trainlabeldir = dir(fullfile('labelsTr', '*.nii'));
T = length(traindir); Te = round(T*0.10);
traindir_fin = traindir(1:T-Te-1);
validdir_fin = traindir(T-Te:T);
traindir_label_fin = trainlabeldir(1:T-Te-1);
validdir_label_fin = trainlabeldir(T-Te:T);
%training = struct('image', fullfile('imagesTr',traindir_fin(:).name), 'label', fullfile('labelsTr',traindir_label_fin(:).name));
% training = struct();
% training.image = {fullfile('imagesTr',traindir_fin(:).name)};
% training.label = {fullfile('labelsTr',traindir_label_fin(:).name)};
% training = struct('image', fullfile('imagesTr',traindir_fin(:).name), 'label', fullfile('labelsTr',traindir_label_fin(:).name));
% training = [image, label];
for i = 1 : length(traindir_fin)
newtrain = struct('image', fullfile('imagesTr',traindir_fin(i).name), 'label', fullfile('labelsTr',traindir_label_fin(i).name));
if i == 1
training = newtrain;
else
training = [training; newtrain];
end
end
for i = 1 : length(validdir_fin)
newtrain = struct('image', fullfile('imagesTr',validdir_fin(i).name), 'label', fullfile('labelsTr',validdir_label_fin(i).name));
if i == 1
validation = newtrain;
else
validation = [validation; newtrain];
end
end
% s = struct('description', description, ...
% 'license', license, ...
% 'labels', labels, ...
% 'modality', modality, ...
% 'name', 'ACT', ...
% 'numTest', numTest, ...
% 'numTraining', numTraining, ...
% 'reference', 'NA', ...
% 'release', 'NA', ...
% 'tensorImageSize', '3D', ...
% 'test', test, ...
% 'training', training, ...
% 'validation', validation);
s = struct();
s.description = description;
s.labels = labels;
s.license = license;
s.modality = modality;
s.name = 'ACT';
s.numTest = numTest;
s.numTraining = numTraining;
s.reference = 'NA';
s.release = 'NA';
s.tensorImageSize = '3D';
s.test = test;
s.training = training;
s.validation = validation;
s = jsonencode(s);
fid = fopen('dataset_1.json','w');
fprintf(fid,s);
fclose(fid);