Effacer les filtres
Effacer les filtres

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

5 vues (au cours des 30 derniers jours)
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 commentaires
Image Analyst
Image Analyst le 1 Fév 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);

Connectez-vous pour commenter.

Réponses (2)

Christian Wrobel
Christian Wrobel le 5 Fév 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 commentaire
OkinawaDolphin
OkinawaDolphin le 8 Fév 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.

Connectez-vous pour commenter.


MosGeo
MosGeo le 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!

Translated by