Я создал простой графический интерфейс для предварительного просмотра потока с веб-камеры и получения из него снимка. Для этого я создал оси для показа видео, одну кнопку (кнопка1) для запуска предварительного просмотра, одну кнопку (кнопка2) для получения снимка. Ниже приведен код для этих двух кнопок.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
axes(handles.axes1);
vidObj = videoinput('winvideo',1);
videoRes = get(vidObj, 'VideoResolution');
numberOfBands = get(vidObj, 'NumberOfBands');
handleToImage = image( zeros([videoRes(2), videoRes(1), numberOfBands], 'uint8') );
preview(vidObj, handleToImage);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
a=getsnapshot(get(axes,'Children'));
imshow(a);
В pushbutton2_Callback я пытаюсь получить дочерний элемент осей, т.е. vidObj
. Но это дает мне ошибку ??? Undefined function or method 'getsnapshot' for input arguments of type 'double'.
. Почему он возвращает двойной тип вместо дочернего объекта vidObj
? Как я могу исправить это и получить снимок? Есть ли другой лучший способ? (Я только начал изучать графический интерфейс.) Спасибо.
vidObj
global. - person Harshveer Singh   schedule 27.05.2012