drawrectangle, drawcircle, drawellipse and drawpolyon draw region of interest at wrong position.
Show older comments
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
on 1 Feb 2021
Can you give a small snippet of code to replicate the situation. As I remember, when I used it, it worked for me.
ImageProcessingScientist
on 1 Feb 2021
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);
ImageProcessingScientist
on 8 Feb 2021
Answers (2)
Christian Wrobel
on 5 Feb 2021
0 votes
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
ImageProcessingScientist
on 8 Feb 2021
MosGeo
on 5 Oct 2021
0 votes
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.
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!