www.gusucode.com > 模版匹配定位跟踪源码程序 > 模版匹配定位跟踪源码程序/AlgorithmDevelopmentWithMATLAB/WebcamGUI/webcam.m
function out = webcam %WEBCAM M-Code for creating a video input object. % % This is the machine generated representation of a video input object. % This M-file, WEBCAM.M, was generated from the OBJ2MFILE function. % A MAT-file is created if the object's UserData property is not % empty or if any of the callback properties are set to a cell array % or to a function handle. The MAT-file will have the same name as the % M-file but with a .MAT extension. To recreate this video input object, % type the name of the M-file, webcam, at the MATLAB command prompt. % % The M-file, WEBCAM.M and its associated MAT-file, WEBCAM.MAT (if % it exists) must be on your MATLAB path. % % Example: % vidobj = webcam; % % See also VIDEOINPUT, IMAQDEVICE/PROPINFO, IMAQHELP, PATH. % % Copyright 2013 The MathWorks, Inc. % Check if we can check out a license for the Image Acquisition Toolbox. canCheckoutLicense = license('checkout', 'Image_Acquisition_Toolbox'); % Check if the Image Acquisition Toolbox is installed. isToolboxInstalled = exist('videoinput', 'file'); if ~(canCheckoutLicense && isToolboxInstalled) % Toolbox could not be checked out or toolbox is not installed. errID = 'imaq:obj2mfile:invalidToolbox'; error(errID, 'Image Acquisition Toolbox is not installed.'); end % Device Properties. adaptorName = 'winvideo'; deviceID = 1; vidFormat = 'RGB24_320x240'; tag = ''; % Search for existing video input objects. existingObjs1 = imaqfind('DeviceID', deviceID, 'VideoFormat', vidFormat, 'Tag', tag); if isempty(existingObjs1) % If there are no existing video input objects, construct the object. vidObj1 = videoinput(adaptorName, deviceID, vidFormat); else % There are existing video input objects in memory that have the same % DeviceID, VideoFormat, and Tag property values as the object we are % recreating. If any of those objects contains the same AdaptorName % value as the object being recreated, then we will reuse the object. % If more than one existing video input object contains that % AdaptorName value, then the first object found will be reused. If % there are no existing objects with the AdaptorName value, then the % video input object will be created. % Query through each existing object and check that their adaptor name % matches the adaptor name of the object being recreated. for i = 1:length(existingObjs1) % Get the object's device information. objhwinfo = imaqhwinfo(existingObjs1{i}); % Compare the object's AdaptorName value with the AdaptorName value % being recreated. if strcmp(objhwinfo.AdaptorName, adaptorName) % The existing object has the same AdaptorName value as the % object being recreated. So reuse the object. vidObj1 = existingObjs1{i}; % There is no need to check the rest of existing objects. % Break out of FOR loop. break; elseif(i == length(existingObjs1)) % We have queried through all existing objects and no % AdaptorName values matches the AdaptorName value of the % object being recreated. So the object must be created. vidObj1 = videoinput(adaptorName, deviceID, vidFormat); end %if end %for end %if % Configure vidObj1 properties. set(vidObj1, 'ErrorFcn', @imaqcallback); set(vidObj1, 'FramesAcquiredFcnCount', 100); set(vidObj1, 'FramesAcquiredFcn', @(h, e) flushdata(h)); set(vidObj1, 'TriggerRepeat', Inf); out = vidObj1 ;