Matlab 指南:开发基本的网络摄像头查看器

Matlab Guide: Developing a basic webcam viewer

当单击预览按钮时,下面的代码应该在名为 axes1 的图中显示网络摄像头预览。它必须实时显示网络摄像头图像。

% --- Executes on button press in Preview.
function Preview_Callback(hObject, eventdata, handles)
% hObject    handle to Preview (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
    img = snapshot(cam);

    imshow(img,'Parent',handles.axes1);

    disp(clock);
    pause(0.5);

出现的错误是: 评估 UIControl 回调时出错

未定义函数或变量'cam'。

Main 中的错误>Preview_Callback(第 161 行) img = 快照(cam);

gui_mainfcn 中的错误(第 95 行) feval(varargin{:});

Main 错误(第 43 行) gui_mainfcn(gui_State, varargin{:});

@(hObject,eventdata)Main('Preview_Callback',hObject,eventdata,guidata(hObject)) 出错

评估 UIControl 回调时出错

如果我将 cam=webcam; 放在 img = snapshot(cam); 之前,错误状态为 Error using Main>Preview_Callback (第 161 行) 与网络摄像头、集成网络摄像头的活动连接已经存在。您不能创建与同一网络摄像头的另一个连接。

gui_mainfcn 中的错误(第 95 行) feval(varargin{:});

Main 错误(第 43 行) gui_mainfcn(gui_State, varargin{:});

@(hObject,eventdata)Main('Preview_Callback',hObject,eventdata,guidata(hObject)) 出错

评估 UIControl 回调时出错

很明显是初始化的地方不对。应该在哪里初始化/声明与网络摄像头的连接?

Intialise counter as follows:
handles.PressOne=0;


if handles.PressOne==0
     Connect to the camera (cam=webcam). 
     Update counter for handles.PressOne.
else
     Capture the image (img=snapshot(cam)) and disp the data. 
end