将点击事件附加到循环更新的人物

时间:2018-08-17 17:38:23

标签: matlab matlab-figure

如何将鼠标单击事件附加到MatLab中的图上,该图会循环更新?

我的问题如下: 我想使用MatLab在图形中显示图像,并通过用鼠标左键单击图形内部来执行某些操作,如以下代码所示:

功能:

function OnMouse(hObject,~)
axes_handle = gca;
pt = get(axes_handle, 'CurrentPoint');

clicked_x=pt(1,1)
clicked_y=pt(1,2)

主要:

im = rand(500,500);
f=figure(1);
set(f,'WindowButtonDownFcn',@mytestcallback)
imshow(im)

这很好。每次单击图形时,它都会打印单击位置。但是我想在循环中显示一个实时流,如下面的代码所示:

for i = 1:100
    im = rand(500,500);
    f=figure(1);
    set(f,'WindowButtonDownFcn',@mytestcallback)
    imshow(im)
    %pause(1)
    %pause(0.001)
end

该代码几乎永远不会识别click事件(因为该图已更新?)。我发现,如果添加暂停语句,它会更频繁地识别点击。但由于它是直播,因此暂停时间必须低于0.01毫秒。但是,如果暂停时间很短,那么它将不再识别点击事件。

0 个答案:

没有答案