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

10 次查看(过去 30 天)
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?

采纳的回答

Payas Bahade
Payas Bahade 2020-5-15
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!

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by