How to Select Square Section of Image Interactively (not programmatically)

I am making a MATLAB App / GUI where a user selects an image, then will need to select a square section within that image (then other stuff using just this selected section). The size and location of the square will be different for each case.
I have been looking at options such as drawrectangle ( https://www.mathworks.com/help/images/ref/drawrectangle.html ), but I don't see a way to enforce the region selected is a square.
Of course, a rectangular section could be modified by trimming off excess pixels to make it a square programmatically, but that could affect the center of the region. I was thinking about using ginput to select a center location, then defining a square size that would lie on that center location..
Does anyone have a suggestion for a better way to select a square section of an image?

 Respuesta aceptada

Hi Darren,
You can use drawrectangle function and pass following name-value pairs to ensure ROI is a square:
  1. AspectRatio’ which is ratio of height/width of rectangle and define value as ‘1’
  2. FixedAspectRatio’ to ensure that defined aspect ratio is fixed while interacting with drawn ROI and set its value as ‘true’
rect = drawrectangle(app.UIAxes,'AspectRatio',1,'FixedAspectRatio',true);
For more details, please refer this documentation link on customizable rectangular ROI.
Hope this helps!

Más respuestas (0)

Etiquetas

Preguntada:

el 12 de Mayo de 2020

Comentada:

el 15 de Mayo de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by