使用imshow从MATLAB中的计时器回调函数更改GUI中的轴
我正在使用一个GUI(称为MainVidGUI,使用GUIDE,使用imshow从MATLAB中的计时器回调函数更改GUI中的轴,matlab,user-interface,timer,callback,matlab-guide,Matlab,User Interface,Timer,Callback,Matlab Guide,我正在使用一个GUI(称为MainVidGUI,使用GUIDE,OpeningFcn是GUIDE创建的基本GUI),它有轴(称为hcam),按下一个按钮(称为采集),我想从实时视频流中修改一帧,并在轴上显示修改后的帧 当前代码如下所示: 按钮回调函数: function Acquisition_Callback(hObject, eventdata, handles) global DevAdapt DevID DevFormat vid=videoinput(DevAdapt,DevI
OpeningFcn
是GUIDE创建的基本GUI),它有轴(称为hcam),按下一个按钮(称为采集),我想从实时视频流中修改一帧,并在轴上显示修改后的帧
当前代码如下所示:
按钮回调函数:
function Acquisition_Callback(hObject, eventdata, handles)
global DevAdapt DevID DevFormat
vid=videoinput(DevAdapt,DevID,DevFormat);
vid.ReturnedColorspace = 'grayscale';
set(vid,'TimerPeriod',0.1);
triggerconfig(vid,'manual');
set(vid,'FramesPerTrigger',1);
set(vid,'TriggerRepeat',1000);
start(vid);
set(vid,'TimerFcn',{@lane_detection,handles});
计时器回调函数:
function lane_detection(vid, event, handles)
trigger(vid);
previewframe = getdata(vid,1);
%code here that modifies the previewframe a little bit
set(MainVidGUI,'CurrentAxes',handles.hcam);
imshow(previewframe)
当按下采集按钮时,定时器被启用,图像被修改,但是它们显示在一个新的图1窗口中,而不是GUI轴上。有没有办法解决这个问题?阅读imshow函数的帮助。在imshow调用中为“Parent”属性指定要绘制的轴