-
Notifications
You must be signed in to change notification settings - Fork 14
/
showboxes.m
84 lines (79 loc) · 2.06 KB
/
showboxes.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
function showboxes(im, boxes, out)
% showboxes(im, boxes, out)
% Draw bounding boxes on top of image.
% If out is given, a pdf of the image is generated (requires export_fig).
if nargin > 2
% different settings for producing pdfs
print = true;
wwidth = 2.25;
cwidth = 1.25;
imsz = size(im);
% resize so that the image is 300 pixels per inch
% and 1.2 inches tall
scale = 1.2 / (imsz(1)/300);
im = imresize(im, scale, 'method', 'cubic');
%f = fspecial('gaussian', [3 3], 0.5);
%im = imfilter(im, f);
boxes = (boxes-1)*scale+1;
else
print = false;
cwidth = 2;
end
image(im);
if print
truesize(gcf);
end
axis image;
axis off;
set(gcf, 'Color', 'white');
if ~isempty(boxes)
numfilters = floor(size(boxes, 2)/4);
if print
% if printing, increase the contrast around the boxes
% by printing a white box under each color box
for i = 1:numfilters
x1 = boxes(:,1+(i-1)*4);
y1 = boxes(:,2+(i-1)*4);
x2 = boxes(:,3+(i-1)*4);
y2 = boxes(:,4+(i-1)*4);
% remove unused filters
del = find(((x1 == 0) .* (x2 == 0) .* (y1 == 0) .* (y2 == 0)) == 1);
x1(del) = [];
x2(del) = [];
y1(del) = [];
y2(del) = [];
if i == 1
w = wwidth;
else
w = wwidth;
end
line([x1 x1 x2 x2 x1]', [y1 y2 y2 y1 y1]', 'color', 'w', 'linewidth', w);
end
end
% draw the boxes with the detection window on top (reverse order)
for i = numfilters:-1:1
x1 = boxes(:,1+(i-1)*4);
y1 = boxes(:,2+(i-1)*4);
x2 = boxes(:,3+(i-1)*4);
y2 = boxes(:,4+(i-1)*4);
% remove unused filters
del = find(((x1 == 0) .* (x2 == 0) .* (y1 == 0) .* (y2 == 0)) == 1);
x1(del) = [];
x2(del) = [];
y1(del) = [];
y2(del) = [];
if i == 1
c = [160/255 0 0];
s = '-';
else
c = 'b';
s = '-';
end
line([x1 x1 x2 x2 x1]', [y1 y2 y2 y1 y1]', 'color', c, 'linewidth', cwidth, 'linestyle', s);
end
end
% save to pdf
if print
% requires export_fig from http://www.mathworks.com/matlabcentral/fileexchange/23629-exportfig
export_fig([out]);
end