MATLAB Answers

how can assign numbers to detected bounding boxes?

14 views (last 30 days)
I have a final bounding box attributes and an Image. I need to assign a number to each bounding box from the top left side in a sequential order. I have an object detected image like this.
Now I need a numbered object detected image some this like this. (Number position and size is not an issue)
How can I do that?

  1 Comment

ANKUR KUMAR on 30 Sep 2018
Please attach you image and required things so that we can help you in a bit more effective manner.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 30 Sep 2018
Put the coordinates into a 2D array. sortrows() with either [1 2] or [2 1] depending upon whether the numbering priority is down ([1 2]) or across ([2 1]) . Afterwards, the row number will be the number to use for the bounding box.


Show 5 older comments
Shaik Ahmad
Shaik Ahmad on 1 Oct 2018
insertText() needs input with two values, but this sort function is giving all four co-ordinate values.
When I tried on above input I am getting error shown in below
Expected input number 2, POSITION, to be of size Mx2 when it is actually size 7x4.
Image Analyst
Image Analyst on 1 Oct 2018
It looks like the output image you got is correct. Is there still a problem?
Be careful with sorting things, otherwise it's possible things could get mismatched. If you sort some things, like bounding box locations and labels, then you need to sort everything else the same way, otherwise, you might have the area of box 4 (say) with the area of box 2 (as shown by test on the image).
Walter Roberson
Walter Roberson on 1 Oct 2018
RGB = insertText(I, newpositions(:,1:2), 1:size(newpositions,1), 'FontSize', 22, 'AnchorPoint' ,'LeftBottom');

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!