【发布时间】:2016-11-14 17:46:42
【问题描述】:
我希望截取视频帧并将每个帧作为图像保存在我桌面上的文件夹中。但是,我只想捕获某些帧,它们是写在文本文档中的。
我的问题是,我如何读取存储在此文本文档中的帧编号并仅将这些帧提取到 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
【问题讨论】:
-
你已经有什么代码了?你的文本文件是什么格式的?
-
我要修改的代码是一个 for 循环,它将每一帧提取为 png 文件。我将把它添加到我上面的问题的正文中。文本文档只是一列数字。我可以让提取物从文本文档中的第一个数字开始,但它只是增加一个。我不确定如何正确计算这些数字。
标签: matlab image-processing video-processing