如何将鼠标单击事件附加到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毫秒。但是,如果暂停时间很短,那么它将不再识别点击事件。