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

使用matlab比较多个网络摄像头快照并在有运动时保存它们,matlab,Matlab,我的问题是如何从我的网络摄像头中获取实时快照,并且只在有运动时保存一张图像,我想保存几张图像,即无论何时有运动,图像都不会覆盖,以便最终我能够看到各种捕获的运动,我能够为我的问题找到一个简单的解决方案,如下所示;它仅在有运动时保存图像,并添加时间戳 clear; clc; vid = videoinput('winvideo', '1'); set(vid, 'ReturnedColorSpace', 'RGB'); start(vid) %preview(vid) while true; i

我的问题是如何从我的网络摄像头中获取实时快照,并且只在有运动时保存一张图像,我想保存几张图像,即无论何时有运动,图像都不会覆盖,以便最终我能够看到各种捕获的运动,我能够为我的问题找到一个简单的解决方案,如下所示;它仅在有运动时保存图像,并添加时间戳

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
这就是全部,非常简单,我唯一能提到的是strep(datestr(clock),“:”,“-”),这是一种保存图像时间戳的方法,因为日期字符串中有分号,strep()会用连字符或其他任何东西来重显它们


av fun。

你已经有办法将实时图像流输入matlab了吗?是的,我只能比较两幅图像并保存一幅图像。我犯的错误是我没有将代码放在这里,我无法编辑问题