Main Content


Preserve aspect ratio when resizing ROI object

setFixedAspectRatioMode is not recommended. With the new ROIs, set the value of the FixedAspectRatio property instead. For more information, see Compatibility Considerations.



setFixedAspectRatioMode(h,TF) sets whether the aspect ratio of the ROI object is preserved during interactive resizing.


collapse all

Create an ellipse ROI object.

h = imellipse(gca,[10 10 100 100]);

Specify a position constraint function using makeConstrainToRectFcn to keep the ellipse inside the boundary of the image.

fcn = makeConstrainToRectFcn("imellipse",get(gca,"XLim"),get(gca,"YLim"));

Try resizing and reshaping the ellipse.

Now, fix the aspect ratio of the ellipse.


Try resizing the ellipse. The aspect ratio of the ellipse does not change.

Input Arguments

collapse all

ROI object, specified as an imellipse or imrect object.

Fix the aspect ratio when resizing ROI object, specified as true or false.

Data Types: logical

Version History

Introduced before R2006a

collapse all

R2018b: setFixedAspectRatioMode is not recommended

Starting in R2018b, a new set of ROI objects replaces the existing set of ROI objects. The new objects provide more functional capabilities, such as face color transparency. The new classes also support events that you can use to respond to changes in your ROI such as moving or being clicked. Although there are no plans to remove the old ROI objects at this time, switch to the new ROIs to take advantage of the additional capabilities and flexibility. For more information on creating ROIs using the new ROI functions, see Create ROI Shapes.

To control whether an Ellipse or Rectangle ROI maintains the aspect ratio when being resized, use the FixedAspectRatio property of the ROI.

Update Code

Update all instances of setFixedAspectRatioMode method.

Discouraged UsageRecommended Replacement

This example uses the setFixedAspectRatioMode method to preserve the aspect ratio of a rectangle when resizing.

h = imrect(gca,[10 10 100 100]);

Create a Rectangle ROI, using the new ROI objects, and replace use of the setFixedAspectRatioMode method with setting the value of the FixedAspectRatio property. To preserve the aspect ration when resizing, set the property to true.

h = drawrectangle(gca,"Position",[10 10 100 100]);
h.FixedAspectRatio = true;

See Also