Building an outer bounding box from multiple smaller boxes
image, image-processing, matlab, plot
Solution
here's and example with some random rectangles:
% Generate fake data, 3 rects with format [x,y,w,h]:
rects=20+randi(60,3,4);
% plot the rects :
for n=1:size(rects,1)
rectangle('Position',rects(n,:));
end
% get min max
xmin=min(rects(:,1));
ymin=min(rects(:,2));
xmax=max(rects(:,1)+rects(:,3));
ymax=max(rects(:,2)+rects(:,4));
% define outer rect:
outer_rect=[xmin ymin xmax-xmin ymax-ymin];
hold on
rectangle('Position',outer_rect,'EdgeColor','r','LineStyle',':');
Problem
I am trying to draw an outer bounding box, around all smaller bounding boxes that are overlapping. There may be many of these regions within the entire image. e.g. So far I have my vector of rectangles called rects. ``` overlaps = rectint(rects, rects); ``` Where I check of overlaps with each other, and because it will compare with itself I remove the diagonal as follows: ``` overlaps(logical(eye(size(overlaps)))) = 0; ``` Then find the locations of the overlaps ``` [r,c] = find(overlaps > 0); ``` However, I am not sure how to deal with this as it is not a simple bi directional mapping in the square matrix returned, as there can be multiple overlaps in the area. Any suggestions on how I can proceed would be greatly appreciated. Thanks