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.
Fix Aspect Ratio of Ellipse
Create an ellipse ROI object.
imshow("coins.png") h = imellipse(gca,[10 10 100 100]);
Specify a position constraint function using
keep the ellipse inside the boundary of the image.
fcn = makeConstrainToRectFcn("imellipse",get(gca,"XLim"),get(gca,"YLim")); setPositionConstraintFcn(h,fcn);
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.
Version HistoryIntroduced before R2006a
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
ROI maintains the aspect ratio when being resized, use the
FixedAspectRatio property of the ROI.
Update all instances of
|Discouraged Usage||Recommended Replacement|
This example uses the
imshow("cameraman.tif") h = imrect(gca,[10 10 100 100]); setFixedAspectRatioMode(h,true);
Create a Rectangle ROI, using the new ROI objects, and
replace use of the
imshow("camerman.tif") h = drawrectangle(gca,"Position",[10 10 100 100]); h.FixedAspectRatio = true;