【问题标题】:Using imshow to change axes in GUI from a timer callback function in MATLAB使用 imshow 从 MATLAB 中的计时器回调函数更改 GUI 中的轴
【发布时间】:2013-03-14 19:08:53
【问题描述】:

我正在使用具有轴(称为 hcam)的 GUI(称为 MainVidGUI,使用 GUIDE,OpeningFcn 是 GUIDE 创建的基本图形),并且通过按一个按钮(称为 Acquisition),我想修改一个来自实时视频流的帧,并在轴上显示修改后的帧。

目前代码如下:

按钮回调函数:

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 轴。有没有办法解决这个问题?

【问题讨论】:

    标签: matlab user-interface timer callback matlab-guide


    【解决方案1】:

    阅读 imshow 函数的帮助。在对 imshow 的调用中为“父”属性指定要绘制的轴。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多