www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I4_07_1_optflow_webcam_class.m

    %% 僐儞僺儏乕僞價僕儑儞僨儌丗
% 僙僋僔儑儞幚峴
clear; close all; clc; imaqreset; clear videooptflowlines;

% 價僨僆僇儊儔偺弶婜愝掕(僆僽僕僃僋僩嶌惉)   [堦峴]
%     (Image Acquisition Toolbox偺僔僗僥儉僆僽僕僃僋僩)
hVideo = imaq.VideoDevice('winvideo', 1, 'RGB24_640x480', 'ReturnedDataType','uint8');

%% 僆僾僥傿僇儖僼儘乕専弌偺僆僽僕僃僋僩傪嶌惉
opticFlow = opticalFlowLK;
plotScaleFactor = 10;

% PC偺夋柺偵價僨僆傪昞帵偡傞價儏乕儚偺嶌惉
viewer = vision.DeployableVideoPlayer;
%viewer = vision.VideoPlayer;

% 僼儗乕儉儗乕僩寁嶼梡偵僞僀儅乕傪僗僞乕僩
fps = single(0.0);cnt = 1;tic;

% Stop 儃僞儞昞帵
a=true;
sz = get(0,'ScreenSize');
figure('MenuBar','none','Toolbar','none','Position',[20 sz(4)-100 100 70])
uicontrol('Style', 'pushbutton', 'String', 'Stop',...
        'Position', [20 20 80 40],...
        'Callback', 'a=false;');

%% 擖椡摦夋憸傪1僼儗乕儉偢偮張棟偡傞儖乕僾
while (a)
  frame = step(hVideo);         % 僇儊儔偐傜1僼儗乕儉庢崬
  
  gFrame = rgb2gray(frame);                    % 僌儗乕僗働乕儖傊曄姺
  flow  = estimateFlow(opticFlow, gFrame);     % 僆僾僥傿僇儖僼儘乕寁嶼
  lines = videooptflowlines(flow.Vx + i * flow.Vy, plotScaleFactor); % 儀僋僩儖偺巒揰廔揰偺寁嶼 (5x5 僺僋僙儖偛偲)
  
  % 寢壥偺忋彂偒
  frame1 = insertShape(frame, 'Line', lines, 'Color','red', 'SmoothEdges',false);
  frame2 = insertText(frame1, [50 50], ['Running at ' num2str(fps) 'fps'], 'FontSize',30, 'TextColor','green', 'BoxOpacity', 0);
  step(viewer,frame2);                 % 夋柺僼儗乕儉峏怴
  
   % 20僼儗乕儉偺強梫帪娫偐傜僼儗乕儉儗乕僩傪寁嶼
   cnt = cnt + 1;
   if (mod(cnt,20) == 0)
    t = toc;
    fps = single(20/t);
    tic;
   end
   
   drawnow limitrate;      % 儃僞儞偺峏怴傪丄20 僼儗乕儉/昩偵惂尷
end

clear videooptflowlines;      %to clear persistent variables.
release(hVideo);
release(viewer);

%% [廔椆]  Figure忋偺Stop儃僞儞偱廔椆

%% 師偵墳梡椺偺屼徯夘







%% [嶲峫]
%摦夋偱摦偐偡椺乯hVideo = imaq.VideoDevice偺戙傢傝偵埲壓傪巊梡
% hVideo = vision.VideoFileReader('visiontraffic.avi', 'PlayCount', inf);

%暿偺僆僾僥傿僇儖僼儘乕傾儖僑儕僘儉偺椺
% opticFlow = opticalFlowHS; plotScaleFactor = 200;
% opticFlow = opticalFlowFarneback; plotScaleFactor = 2;


%% Copyright 2013-2014 The MathWorks, Inc.