比较几个网络摄像头快照并在有运动时保存它们使用matlab

时间:2014-04-02 16:00:25

标签: matlab

我的问题是我如何从我的网络摄像头获取实时快照,并且只在有动作时保存图像,我想保存几张图像,即每当有动作时图像不会覆盖,以便最后我会能够看到各种被捕获的动作

1 个答案:

答案 0 :(得分:0)

我能够为我的问题提出一个简单的解决方案,如下所示;它仅在有动作时保存图像并且还添加时间戳

clear;
clc;
vid  = videoinput('winvideo', '1');
set(vid, 'ReturnedColorSpace', 'RGB');
start(vid)
%preview(vid)
while true;
img = getsnapshot(vid);
pause(2)
img1 = getsnapshot(vid);

img12 = rgb2gray(img1);
img13 = rgb2gray(img);
diff1 =sum(sum(img12 - img13));
  if diff1>100000;
      display ('motion')
      counter  = 1;
      baseDir  = 'H:\';
      fname = [baseDir ,'Wysla_', num2str((strrep(datestr(clock),':','-'))),'.jpg']; 
      % make a file name
      while exist(fname,'file')
          counter = counter + 1;
        fname = [baseDir ,'Wysla_', num2str(counter),'.jpg'];
      end  
      imwrite(img1, fname);

  else 
      display('No motion')
  end;
end

这就是全部而且非常简单我唯一可以提到的是strrep(datestr(时钟),':',' - ')这是一种节约方式图像时间标记,因为日期字符串中有半冒号,strrep()用连字符或其他任何东西重放它们

av fun。