自动增加文件名VideoWriter MATLAB

时间:2015-04-08 11:43:26

标签: image matlab webcam webcam-capture

我将MATLAB设置为同时记录三个网络摄像头。我想捕获并将每个Feed保存到文件中并自动将其增加文件名,它将替换为experiment_0001.avi,然后是experiment_0002.avi等。

我的代码目前看来是这样的

set(vid1,'LoggingMode','disk');
set(vid2,'LoggingMode','disk');

avi1 = VideoWriter('X:\ABC\Data Collection\Presentations\Correct\ExperimentA_002.AVI');
avi2 = VideoWriter('X:\ABC\Data Collection\Presentations\Correct\ExperimentB_002.AVI');
set(vid1,'DiskLogger',avi1);
set(vid2,'DiskLogger',avi2);

我每次都在递增002。

有关如何有效实施此方法的任何想法?

感谢。

1 个答案:

答案 0 :(得分:0)

别忘了matlab对C编程语言有一些根源。这意味着像sprintf这样的东西会起作用

所以既然你打印出一个零填充到3个空格的整数值,你需要这样的sprintf('%03d',n),然后%表示有一个值可以打印不是文本。 0表示左边是零填充,3表示填充到3位,d表示数字本身是整数

只需使用sprintf代替字符串。 s表示 S 打印格式化。所以它会输出一个字符串。这里是你可能会做什么的想法

set(vid1,'LoggingMode','disk');
set(vid2,'LoggingMode','disk');

for (n=1:2:max_num_captures)
    avi1 = VideoWriter(sprintf('X:\ABC\Data Collection\Presentations\Correct\ExperimentA_%03d.AVI',n));
    avi2 = VideoWriter(sprintf('X:\ABC\Data Collection\Presentations\Correct\ExperimentB_002.AVI',n));
    set(vid1,'DiskLogger',avi1);
    set(vid2,'DiskLogger',avi2);
end