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

9 visualizaciones (últimos 30 días)
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 comentarios
Image Analyst
Image Analyst el 1 de Feb. de 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);

Iniciar sesión para comentar.

Respuestas (2)

Christian Wrobel
Christian Wrobel el 5 de Feb. de 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 comentario
OkinawaDolphin el 8 de Feb. de 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.

Iniciar sesión para comentar.

MosGeo el 5 de Oct. de 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.
The bug occurs when you have any control in uifigure that has a negative y position.
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