MATLAB Answers

Practical way to have multiple "drawrectangle" and work with them

3 views (last 30 days)
I have an image displayed in an axes. The user should draw multiple rectangles using drawrectangle (command started via menu command in a GUI). When the user decides that there are enough recangles, he will start the tracking algorithm which will track the content of every rectangle he has drawn.
I am looking for the easiest way to work with these rectangles. Each rectangle has a Matlab-built-in context menu, that allows to delete or adjust the rectangle. So I need some sort of a dynamic list of rectangles that also react to the interactions with the context menu.
Here is the principle that generates a cell array of rectangles, but of course, it is not updated when the user interacts with the context menu. I am looking for a better way to generate and update this list of rectangles. Thank you for your help!!
% User adds a rectangle
if isempty(track_rectangles) %first time a rectangle is selected
track_rectangles=cell(0)
end
track_rectangles(end+1)={drawrectangle(gca)}

Accepted Answer

William Thielicke
William Thielicke on 28 Feb 2021
Ok, I found something in the help:
hfhs = findobj(gca, 'Type', 'images.roi.Rectangle')
Calling this just before starting the tracking will give you a list of all rectangles that have been drawn.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by