-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathloopdir.m
90 lines (89 loc) · 2.28 KB
/
loopdir.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
%parpool(8);
%%
% folder='C:\Users\Zeinab\Google Drive\Courses\ImageProcessing\final-project\IrisRecognition\IrisRecognition\New folder';
% subdir=dir(folder);
% count=1;
% user_eye=1;
% X = [];
% Y = [];
% for i=3:length(subdir)
% sub_subdir=dir([folder '\' subdir(i).name]);
% for j=3:length(sub_subdir)
% if(strcmp(sub_subdir(j).name,'left'))
% for k=1:5
% img=dir([folder '\' subdir(i).name '\left\*.bmp']);
% filename = [folder '\' subdir(i).name '\left\' img(k).name]
% try
% X(count,:) = iriscode(filename);
% Y(count) = user_eye;
% catch
% display(['Error in local' filename]);
% end
% count = count + 1;
% end
% user_eye = user_eye + 1;
% else
% for k=1:5
% img=dir([folder '\' subdir(i).name '\right\*.bmp']);
% filename = [folder '\' subdir(i).name '\right\' img(k).name]
% try
% X(count,:) = iriscode( filename );
% Y(count) = user_eye;
% catch
% display(['Error in local' filename]);
% end
% count = count + 1;
% end
% user_eye = user_eye + 1;
% end
% end
% end
%%
% Z = zeros(90,size(Y,2));
% for i=1:size(Y,2)
% Z(Y(i),i) = 1;
% end
%Z = Z';
%Y =Y';
%save('data.mat','X','Y','Z');
%%
clear;
load('data.mat');
imagesc(X);
imagesc(Z);
%%
figure; imagesc(output);
figure; imagesc(target);
%%
[~,oi] = max(output);
[~,ti] = max(target);
figure; plot((ti -oi)==0);
diff = (ti -oi)~=0;
error = sum(diff)/size(diff,2)
%%
h = pdist(X([1:340 351:end],:),'hamming');
D = squareform(h);
figure;
imagesc(D);
mv = [];
vv = [];
for i=1:5:size(D,1)
for j=0:4
mv(i+j) = mean(D(i+j,[i:i+j-1 i+j+1:i+4]));
vv(i+j) = var(D(i+j,[i:i+j-1 i+j+1:i+4]));
end
end
m = mean(mv);
v = sqrt(sum(vv.^2))/size(D,1);
%%
mn = m*1.2;
fp =0;
fn =0;
for i=1:5:size(D,1)
for j=0:4
accepted = D(i+j,:)<(mn+2*v);
fp = fp + nnz(accepted([1:i-1 i+5:end]));
fn = fn + 5 - nnz(accepted(i:i+4));
end
end
display(sprintf('fn = %f fp = %f', 100*fn/(size(D,1)*4), 100*fp/size(D,1)^2));