无法阻止'纠正'高分辨率图像的对象

时间:2014-06-10 19:00:25

标签: matlab user-interface image-processing

我正在制作一个GUI(带GUIDE),其中有一个用于显示图像序列的轴。为了让用户选择我正在使用'imrect'的序列中感兴趣的区域。问题如下:当图像小于512x512像素(大约)时,一切都很顺利,但是对于较大的图像(我尝试600x600和1024x1024)矩形确实出现,我可以改变它的大小,但我不能拖动它。我虽然必须使用轴单位,所以我将属性从'像素'更改为'标准化'并使用标准化坐标,但它不起作用。

这是我创建矩形并将其移动到轴限制的代码:

hROI = imrect(hVideo,[Width/4 Height/4 Width/2 Height/2]; % Arbitrary size and position of the rectangle, centered on the image.

fcn = makeConstrainToRectFcn('imrect',get(gca,'XLim'),get(gca,'YLim'));
setPositionConstraintFcn(hROI,fcn);

当我在GUI外面的那些大图像上执行相同的操作时,它可以工作。任何暗示都是受欢迎的! 感谢

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方法,以防它可以帮助某人:

在调用imrect之前调用imshow时,我们需要将轴限制指定为" XData"和" YData"参数。

示例:

imshow(Movie{Frame},'parent',handles.axes1_Video,'XData',get(gca,'XLim'),'YData',get(gca,'YLim'))

适用于最大1024x1024的图像。