⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 writetests.m

📁 Video IO toolbox for matlab. 用directshow做的
💻 M
字号:
function writeTests(plugin)
%writeTests(plugin)
%  Performs a battery of simple read-write tests on a given videoReader/
%  videoWriter plugin.  Uses the default codec.
%
%Examples:
%  writeTests
%  writeTests ffmpegPopen2  % linux & similar
%  writeTests ffmpegDirect  % ...if system's gcc is compatible w/ Matlab's
%  writeTests DirectShow    % Windows

ienter

if nargin < 1, plugin = defaultVideoIOPlugin; end

w = 100;
h = 30;
N = 100;

tmpFile = [tempname '.avi'];

try
  % write the video
  vw = videoWriter(tmpFile, plugin, 'width',w, 'height',h);
  
  frames = {};
  for i=1:N
    frame = [getDigit(floor(i/100)) getDigit(mod(floor(i/10), 10)) getDigit(mod(i,10))];
    frame = imresize(frame, [h,w]);
    frames{i} = repmat(uint8(255*frame), [1 1 3]); %#ok<AGROW>
    addframe(vw, frame);
  end
  vw = close(vw);
  
  % read it back in
  vr = videoReader(tmpFile, plugin);
  info = getinfo(vr);
  filt = fspecial('gaussian', 5,2);
  for i=1:N-double(info.nHiddenFinalFrames) - 2 %don't worry if the last few frames didn't work
    vrassert next(vr);  
    diffImg = abs(double(imfilter(frames{i},filt)) - ...
                  double(imfilter(getframe(vr),filt)));
    vrassert all(all(rgb2gray(diffImg) < 10));
    %subplot(121); imshow(frames{i}); subplot(122); imshow(getframe(vr)); pause(0.01);
  end
  close(vr);
  
  delete(tmpFile);
catch
  e = lasterror;
  try close(vr); catch end
  try close(vw); catch end
  delete(tmpFile);
  rethrow(e);
end

iexit

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -