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

    %% 摦夋拞偺摦偄偰偄傞椞堟傪専弌
clc;clear;close all;imtool close all;

%% 摦夋傪撉崬傓偨傔偺僆僽僕僃僋僩偺惗惉
videoSource = vision.VideoFileReader('atrium.mp4');

%% 摦偄偰偄傞慜宨傪専弌偡傞僆僽僕僃僋僩傪惗惉
  detector = vision.ForegroundDetector('NumGaussians', 3, ...
       'NumTrainingFrames', 40, 'MinimumBackgroundRatio', 0.7);

%% 椞堟偺嵗昗庢摼梡僆僽僕僃僋僩偺惗惉 乮400僺僋僙儖埲忋偺傕偺乯
blob = vision.BlobAnalysis( 'AreaOutputPort',false, ...
          'CentroidOutputPort',false, 'BoundingBoxOutputPort',true, ...
          'MinimumBlobArea',400);

%% 摦夋昞帵梡偺僆僽僕僃僋僩偺惗惉
sz = get(0,'ScreenSize');
videoPlayer = vision.VideoPlayer('Position', [150,sz(4)-490,1000,400]);

%% 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;');

while ~isDone(videoSource) && a
  % 1僼儗乕儉庢摼
  frame  = step(videoSource);       % 1僼儗乕儉庢摼

  % 摦偄偰偄傞椞堟偺専弌g傪憓擖
  fgMask = step(detector, frame);   % 摦偄偰偄傞椞堟偺専弌
  bbox   = step(blob, fgMask);      % 椞堟偺嵗昗傪庢摼
  out = insertShape(frame, 'Rectangle', bbox); % 巐妏榞傪憓擖
  
  % 寢壥偺昞帵
  step(videoPlayer, [repmat(fgMask,[1,1,3]) out]); 
end
%%
release(videoPlayer);
release(videoSource);

%% Copyright 2016 The MathWorks, Inc.