将提取的视频帧保存为图像

Save extracted video frames as images

我想抓取视频帧的屏幕并将每个帧作为图像保存在我桌面上的文件夹中。但是,我只想捕获某些帧,这些帧写在文本文档中。

我的问题是,如何读取存储在该文本文档中的帧编号并仅将这些帧提取到 png 文件中?

感谢您提供的任何帮助。如果我需要澄清任何事情,请询问。

frames = dlmread('Frames.txt');

%getting no of frames
numFrames = mov.NumberOfFrames;

%setting current status of number of frames written to zero
numFramesWritten = 0;

for t = frames: numFrames
   currFrame = read(mov, t);    %reading individual frames
   opBaseFileName = sprintf('%3.3d.png', t);
   opFullFileName = fullfile(opFolder, opBaseFileName);
   imwrite(currFrame, opFullFileName, 'png');   %saving as 'png' file
   progIndication = sprintf('Wrote frame %4d of %d.', t, numFrames);
   disp(progIndication);
   numFramesWritten = numFramesWritten + 1;
end

如果我正确理解你的问题:

... how do I read in the frame numbers stored in this text document and only extract these frames to png files?

并假设 'frames' 是一个向量,其中包含您想要的帧的索引子集,那么您需要做的就是更改 for 循环

for t = frames