【问题标题】:Can't drag 'imrect' object for high resolution images无法为高分辨率图像拖动“不正确”对象
【发布时间】:2014-07-31 16:23:38
【问题描述】:

我正在制作一个 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 之外的那些大图像上执行相同的操作时,它可以工作。欢迎任何提示! 谢谢

【问题讨论】:

    标签: matlab user-interface image-processing


    【解决方案1】:

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

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

    例子:

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

    它适用于最大 1024x1024 的图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      • 2013-08-25
      • 2017-08-23
      • 2017-11-26
      • 1970-01-01
      • 2011-04-09
      相关资源
      最近更新 更多