drawrectangle, drawcircle, drawellipse and drawpolyon draw region of interest at wrong position.

11 views (last 30 days)
When I try to draw an interactive rectangle on a GUI with an image, the rectangle is never drawn where I want it to be. In fact, it is drawn with a big offset in y direction. How can I draw an interactive rectangle, circle, ellipse or polygon at the right position?
  4 Comments
Image Analyst
Image Analyst on 1 Feb 2021
Does this correctly report the coordinates:
rgbImage = imread('peppers.png');
h = imshow(rgbImage);
axis('on', 'image');
title('Drag out a rectangle', 'FontSize', 15);
ROI = drawrectangle('Color', 'r')
x1 = ROI.Position(1);
x2 = x1 + ROI.Position(3) - 1;
y1 = ROI.Position(2);
y2 = y1 + ROI.Position(4) - 1;
caption = sprintf('x1 = %.1f, x2 = %.1f, y1 = %.1f, y2 = %.1f',...
x1, x2, y1, y2)
title(caption, 'FontSize', 15);

Sign in to comment.

Answers (2)

Christian Wrobel
Christian Wrobel on 5 Feb 2021
I had the same Problem, when I was using the AppDesigner (Matlab 2019a). I used a GridLayout to organize the axes and some surrounding UI-Objects within a tab. I've found out, that the padding of the GridLayout of the Tab was causing the Offset (Parent of axes). I changed the padding to [0,0,0,0] and the offset was gone. When I increased the padding of GridLayout the offset got even worse. Hope, this may help you.
Best Christian
  1 Comment
OkinawaDolphin
OkinawaDolphin on 8 Feb 2021
I do not have any GridLayout on my GUI. In fact, drawrectangle and similar functions appear to work arbitrarily. As long as I do not start App Designer these functions work fine. Once I start App Designer the offset occurs, regardless of the method to start my app.

Sign in to comment.


MosGeo
MosGeo on 5 Oct 2021
A little late to the party but here is the anwer:
It is a bug in Matlab. I had it happen to me in 2021a. Issue was reported to Mathworks and they were able to reproduce it.
Bug:
The bug occurs when you have any control in uifigure that has a negative y position.
Workaround:
Workaround: make sure all your controls are inside the UIFigure completely.

Community Treasure Hunt

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

Start Hunting!