2013-03-29 29 views
0

我想弄清楚如何在按下按鈕的情況下運行相機並停止相機。如果我不能這樣做,我該如何設置相機才能在這個數字內運行,並且我會一直運行它。另外我需要捕捉一張圖片。在Matlab中按下按鈕打開winvideo流

function faceCam2() 
vid = videoinput('winvideo'); 

% Create a figure window 
hFig = figure('Toolbar','none',... 
     'Menubar', 'none',... 
     'NumberTitle','Off',... 
     'Name','FaceScan'); 

%start camera 
uicontrol( 'String', 'Start Preview',... 
      'Callback', 'preview(vid)',... 
      'Units','normalized',... 
      'Position',[0 0 0.15 .07]);  
%stop 
uicontrol( 'String', 'Stop Preview',... 
      'Callback', 'stoppreview(vid)',... 
      'Units','normalized',... 
      'Position',[.17 0 .15 .07]); 
%snapshot 
uicontrol( 'String', 'Pic',... 
      'Callback', 'data = getsnapshot(vid)',... 
      'Units','normalized',... 
      'Position',[0.34 0 .15 .07]); 
%close window 
uicontrol( 'String', 'Close',... 
      'Callback', 'close(gcf)',... 
      'Units','normalized',... 
      'Position',[0.51 0 .15 .07]); 

end 

當我按下按鈕時,出現matlab命令窗口中的錯誤。退出工作,但不是其他3.我需要做什麼? 謝謝!

未定義的函數或變量'vid'。

錯誤而評估uicontrol回調

回答

0

問題是vid在功能faceCam2一個局部變量,而不是回調可見。 Here是一些將數據傳遞給回調函數的方法。當使用嵌套方法時,代碼如下所示:

function faceCam2() 
vid = videoinput('winvideo'); 

% Create a figure window 
hFig = figure('Toolbar','none',... 
     'Menubar', 'none',... 
     'NumberTitle','Off',... 
     'Name','FaceScan'); 

%start camera 
uicontrol( 'String', 'Start Preview',... 
      'Callback', @prevCallback,... 
      'Units','normalized',... 
      'Position',[0 0 0.15 .07]);  

    function prevCallback(hObject,eventdata) 
     preview(vid); 
    end 
%... 
end 
+0

我這樣做了,但是現在當我按下按鈕時,相機無法啓動。我只是做了 函數prevCallback() preview(vid); 結束 – DDukesterman

相關問題