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.
Create an ellipse ROI object. Specify a position constraint function using
makeConstrainToRectFcn to keep the
ellipse inside the boundary of the image.
imshow('coins.png') h = imellipse(gca,[10 10 100 100]); 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.
Not recommended starting in R2018b
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 ROI Creation Overview.
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;