-
Notifications
You must be signed in to change notification settings - Fork 0
/
temporalBehaviourTest.m
98 lines (73 loc) · 2.75 KB
/
temporalBehaviourTest.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
98
surrounding = 50;
% gap = 800;
for ix = 1:length(d_q_C1) % for all the positions in a corridor
central_point = gt_q(ix); % Get ground truth position of the QUERY
%% Surrounding locations
% Get the closest SURROUNDING positions from the DATABASE
[idx_surr_min,idx_surr_central(ix),idx_surr_max] = ...
getDBindicesOfSurroundingQueriesInCentimetres(central_point,surrounding,gt_db);
% Get the descriptor corresponding to DATABASE images at those locations
idx_surrounding = idx_min:idx_max;
d_db_surrounding = d_db_C1(idx_surrounding);
%% 'Far' locations
% % Get the FAR positions from the DATABASE
% [idx_far_min,idx_far_central(ix),idx_far_max] = ...
% getDBindicesOfSurroundingQueriesInCentimetres(central_point,gap,gt_db);
% Get the descriptor corresponding to DATABASE images at those FAR locations
idx_all = 1:length(d_db_C1);
idx_far = setdiff(idx_all,idx_surrounding);
d_db_surrounding = d_db_C1(idx_surrounding);
d_db_selection_far = d_db_C1(idx_far);
% if (idx_max+gap)<length(d_db_C1)&&(idx_min+gap)<length(d_db_C1)
% d_db_selection_far = d_db_C1(idx_selection+gap);
% elseif (idx_max+gap)>length(d_db_C1) && (idx_min+gap)<length(d_db_C1)
% d_db_selection_far = d_db_C1(idx_min+gap:end);
% end
[distances{ix}] = getDistancesBetweenDescriptors(d_q_C1{ix},d_db_surrounding,0);
[distances_w_gap{ix}] = getDistancesBetweenDescriptors(d_q_C1{ix},d_db_selection_far,0);
end
%%
Max1 = max(cell2mat(cellfun(@(x) max(x(:)),distances,'UniformOutput',0)));
Max2 = max(cell2mat(cellfun(@(x) max(x(:)),distances_w_gap(2:end),'UniformOutput',0)));
Max = max([Max1,Max2]);
windowSize = 3;
b = ones(1,windowSize)/windowSize;
a= 1;
for ix = 1:length(d_q_C1)
correlations{ix} = (-distances{ix}+Max)/Max;
% avg_correlation = filter(b,a,correlations{ix});
% plot(avg_correlation,'.')
% hold on;
% pause
% corr_mat(ix-1,:) = correlations{ix};
end
for ix = 1:length(distances_w_gap)
correlations_w_gap{ix} = (-distances_w_gap{ix}+Max)/Max;
% avg_correlation = filter(b,a,correlations{ix});
% plot(avg_correlation,'.')
% hold on;
% pause
% corr_mat(ix-1,:) = correlations{ix};
end
c = correlations(1:end);
corr_mat = cat(2,c{:});
c2 = correlations_between(1:end);
corr_mat_between = cat(2,c2{:});
%% Plots
figure
x = linspace(0,1,100);
[n,x] = hist(corr_mat,x);
pdf = n/sum(n);
smoothed_pdf = smooth(smooth(pdf));
plot(x,smoothed_pdf)
hold on
[n2,x] = hist(corr_mat_w_gap,x);
pdf_w_gap = n2/sum(n2);
s = smooth(pdf_w_gap);
s1 = smooth(s);
plot(x,s1,'y')
% plot(x,pdf_w_gap,'r')
titleName = ['surrounding descriptors ' num2str(surrounding) 'cm; gap = ' num2str(gap) 'cm'];
title(titleName);
%%
save(titleName);