-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompute_r1_multiCam.m
executable file
·68 lines (62 loc) · 1.68 KB
/
compute_r1_multiCam.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
function r1 = compute_r1_multiCam(good_image, junk_image, index, queryCam, testCam)
good_cam = testCam(good_image);
good_cam_uni = unique(good_cam);
r1 = ones(1, 6)-3;
% on the same camera
good_cam_now = queryCam;
ngood = length(junk_image);
junk_image_now = good_image;
good_image_now = junk_image;
good_now = 0;
for n = 1:length(index)
flag = 0;
if ngood == 0
r1(good_cam_now) = -1;
break;
end
if ~isempty(find(good_image_now == index(n), 1))
flag = 1; % good image
good_now = good_now+1;
end
if ~isempty(find(junk_image_now == index(n), 1))
continue; % junk image
end
if flag == 0
r1(good_cam_now) = 0;
break;
end
if flag == 1%good
r1(good_cam_now) = 1;
break;
end
end
for k = 1:length(good_cam_uni)
good_cam_now = good_cam_uni(k);
ngood = length(find(good_cam == good_cam_now));
pos_junk = find(good_cam ~= good_cam_now);
junk_image_now = [junk_image good_image(pos_junk)];
pos_good = find(good_cam == good_cam_now);
good_image_now = good_image(pos_good);
for n = 1:length(index)
flag = 0;
if ngood == 0
r1(good_cam_now) = -1;
break;
end
if ~isempty(find(good_image_now == index(n), 1))
flag = 1; % good image
end
if ~isempty(find(junk_image_now == index(n), 1))
continue; % junk image
end
if flag == 0
r1(good_cam_now) = 0;
break;
end
if flag == 1%good
r1(good_cam_now) = 1;
break;
end
end
end
end