-
Notifications
You must be signed in to change notification settings - Fork 0
/
train_pixels.m
46 lines (36 loc) · 1.3 KB
/
train_pixels.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
tic
clear all
%------------------------------------------------------------------%
% parameters
training_number = [1:5:1000]; % In this case there are 200 objects per class, change 5 to 100 to get scenario 2.
resize = [40 20];
Angle = -20:20:20; % Using only 3 angles
global W;
%-----------------------------------------------------------------%
a = prnist([0:9], training_number)
im_a = data2im(a);
nlab = getnlab(a);
lablist = getlablist(a);
len = length(Angle);
if(isempty(find(Angle == 0, 1)))
len = len + 1;
end
trainSets = zeros([len*length(im_a) prod(resize)]);
for i = 1:length(im_a)
temp = preprocessing(im_a{i}, resize, Angle);
trainSets((i-1)*size(temp,1)+1 : i*size(temp,1), :) = temp;
end
trainSets = prdataset(trainSets, '1');
trainSets = setlablist(trainSets, lablist);
nn = repmat(nlab', length(Angle), 1);
nn = reshape(nn, [1 size(nn, 1)*size(nn, 2)]);
trainSets = setnlab(trainSets, nn');
trainSets = setprior(trainSets,0);
%% Feature reduction using Fisher
W = nlfisherm(trainSets,9);
trainSets_f = trainSets*W; % W - fisher mapping
%% Classification
% w = qdc(trainSets_f); % As an example only 2 classifiers are shown
w = knnc(trainSets_f,3);
%% Cross - validation
% [ERR,~,~,~] = prcrossval(trainSets_f,knnc,10,1,w);