How Input Web Cam Real Time Live Video Record

Hi,
I have trying to record real time video from input web cam video.Below step's i have followed ,but i cannot get proper?
Step 1 : When I have Click Button Start Button ,input web cam on
if true
faceDetector = vision.CascadeObjectDetector('FrontalFaceCART');
if strcmp(get(handles.captureImage,'String'),'Start Training')
set(handles.captureImage,'String','Stop Training');
vid = videoinput('winvideo');
set(vid,'FramesPerTrigger',1);
set(vid,'TriggerRepeat',Inf);
set(vid,'ReturnedColorSpace','rgb');
triggerconfig(vid, 'Manual');
start(vid);
trigger(vid);
I = (getdata(vid,1,'uint8'));
else
set(handles.captureImage,'String','Start Training')
stop(vid);
delete(vid);
end
end
Step 2 : When i have click start Button i am getting error like : *Image acquisition object OBJ is an invalid object.Error in GUI>captureImage_Callback (line 400)
stop(vid);*
Step 3:I got Another Error like : *Reference to a cleared variable I.
Error in GUI>captureImage_Callback (line 384)
imshow(I);*
Note : Where i have made mistaken in Start /Stop record Button.
Thanks

 Accepted Answer

The video object is local to the function you have it in, and is getting destroyed when the callback returns. You need to retain the object somehow, such as storing it in the handles structure.

6 Comments

Thanks for reply me , I have using handles structure below code for Start Button. Now i want to pass start button variable value int a =100 to stop record button but i got error like Reference to non-existent field
if true
% code
vid = videoinput('winvideo');
handles.vid = vid;
set(handles.vid,'FramesPerTrigger',1);
set(handles.vid,'TriggerRepeat',Inf);
triggerconfig(handles.vid, 'Manual');
int a =100;
handles.a = a;
guidata(hObject, handles);
end
Below code for Stop Record
if true
% code
set(handles.pbStart,'enable','on');
set(handles.pbStop,'enable','off');
disp(handles.a);
end
int a =100;
would be a call to a routine named "int" passing in the strings 'a' and '=100'
Sorry i could not understand ? i have below orginal code like :
Start Button
if true
% code
function pbStart_Callback(hObject, eventdata, handles)
vid = videoinput('winvideo');
handles.vid = vid;
set(handles.vid,'FramesPerTrigger',1);
set(handles.vid,'TriggerRepeat',Inf);
triggerconfig(handles.vid, 'Manual');
handles.upper_distance = hypot(handles.centroidRow_frames, handles.topRowY_frames) ;% Here Double value
end
Stop Button
function pbStop_Callback(hObject, eventdata, handles)
disp(handles.upper_distance);% *Here in this line Error Showing like *Reference to non-existent field*
You missed a statement that you did put into your example code:
guidata(hObject, handles);
ok,now below code i have added both function's (Start and Stop Button's), Error Showing Reference to non-existent field 'upper_distance'.
function pbStart_Callback(hObject, eventdata, handles)
vid = videoinput('winvideo');
handles.vid = vid;
set(handles.vid,'FramesPerTrigger',1);
set(handles.vid,'TriggerRepeat',Inf);
triggerconfig(handles.vid, 'Manual');
guidata(hObject, handles);
start(handles.vid);
trigger(handles.vid);
I = (getdata(handles.vid,1,'uint8'));
handles.upper_distance = hypot(blobCentroid_frames(1), topRowY_frames) ;
guidata(hObject, handles);
Stop Button below Code
% --- Executes on button press in pbStop.
function pbStop_Callback(hObject, eventdata, handles)
set(handles.pbStart,'enable','on');
set(handles.pbStop,'enable','off');
disp(handles.upper_distance); %Here Error Showing like *Reference to non-existent field 'upper_distance'.*
guidata(hObject, handles);
I am not sure. Could you add disp() statements in the Start callback, one per line after the first guidata(), to be sure that the lines are being executed?
start(handles.vid);
disp('did start');
trigger(handles.vid);
disp('did trigger');
I = (getdata(handles.vid,1,'uint8'));
disp('got 1 frame');
handles.upper_distance = hypot(blobCentroid_frames(1), topRowY_frames) ;
disp('calculated upper distance');
guidata(hObject, handles);
disp('saved guidata');

Sign in to comment.

More Answers (0)

Tags

No tags entered yet.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!