How can I prevent moving ROI out of the image edges?

2 次查看(过去 30 天)
I have a Region Of Interest (ROI) on an image. Please see the following code:
a=imread('rice.png'); I=imshow (a); e = imellipse(gca,[]);
The ROI can be moved on the image by mouse dragging. I want that the ROI cannot be able to move out of the image, and be stopped when its bounds reach to the image edges. I would be much appreciated it if you could help me for resolving this problem. Thank you very much

采纳的回答

Image Analyst
Image Analyst 2015-12-16
Did you happen to look at the help for imellipse and see the very first example:
figure, imshow('cameraman.tif');
h = imellipse(gca, [10 10 100 100]);
addNewPositionCallback(h,@(p) title(mat2str(p,3)));
fcn = makeConstrainToRectFcn('imellipse',get(gca,'XLim'),get(gca,'YLim'));
setPositionConstraintFcn(h,fcn);

更多回答(1 个)

azim
azim 2015-12-17
Thank you

Community Treasure Hunt

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

Start Hunting!

Translated by