【问题标题】:Issue with VideoWriter and writeVideo in MatlabMatlab 中 VideoWriter 和 writeVideo 的问题
【发布时间】:2015-07-21 05:07:15
【问题描述】:

我正在尝试在 Matlab 中创建一部电影,在其中多次运行我的代码,并且每次运行的输出都添加到视频中。但是,当我实际尝试将帧添加到电影时,我不断收到一个奇怪的错误。这是我的代码的 sn-p:

writerobj = VideoWriter('RHI_P.avi');
writerobj.FrameRate = 60;
open(writerobj);

\\ Runs through code and generates a pcolor figure

figure(14);
\\ Plotting script goes here....

fig = figure;
F = getframe(fig);

writerobj = writeVideo(writerobj,F);

>> Error using VideoWriter/writeVideo: Too many output arguments.

但是,如果我查看“help writeVideo”,它会说:“writeVideo(OBJ,FRAME) 将 FRAME 写入与 OBJ 关联的视频文件。”

从我的角度来看(尽管我可能是错的!),我正在遵循给出的示例。我已经坚持了几天了。有人有什么建议吗?

另外,我现在一直在使用 getframe(gcf) 作为解决方法。但是,我不能继续这样做,因为我的代码需要几天时间才能运行,并且 gcf 会在启动后捕获屏幕保护程序。

【问题讨论】:

  • 只是一个疯狂的猜测,但是writerobj.writeVideo(F);呢?
  • 您有重现错误的示例吗?以及完整的错误信息?
  • @excaza 我用来创建 pcolor 绘图的代码需要很长时间才能运行,但我可以尝试创建一个产生相同错误的玩具示例。
  • @A.Donda 刚试了一下,还是和以前一样的错误(输出参数太多)。
  • 当您的代码代表您的实际操作时,您可以使用fig = figure; 创建一个新图形,然后使用getframe(fig) 存储空图形。在这种情况下,您需要像这样提供figure(14); 的句柄:fig = figure(14); getframe(fig)。我不确定这是否是这里的问题。

标签: matlab video


【解决方案1】:

writeVideo 没有错误状态的输出参数。

你只需要说

writeVideo(writerObj, F);

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 1970-01-01
    • 2017-04-12
    • 1970-01-01
    • 2022-10-12
    • 2013-08-05
    相关资源
    最近更新 更多