在Linux下运行Matlab R2011b,我正在使用VideoWriter生成视频。我的代码是这样的:
h_fig = figure();
set(h_fig, 'Visible', 'on')
set(h_fig, 'Position', [300,200,898,720]);
h_axs = axes('Parent', h_fig);
set(h_axs,'nextplot','replacechildren');
vidObj = VideoWriter('leadfollow3.avi');
...
for i = 1:n
h_axs_a = subplot(3,2,[1 2]);
plot(h_axs_a, x, a_mag_lead, x, a_mag_follow, 'r');
...
该图由几个子图组成。第一个子图渲染很好,但对于其余部分,轴背景保持灰色而不是白色。更糟糕的是,对于某些帧,它会切换为白色,从而导致视频中出现恼人的闪烁(see example video here)。视频编写器循环外部的各个图不显示此工件。什么是排除故障的最佳策略?
编辑:在我有机会在Windows上尝试此代码后,似乎问题仅限于Linux。尽管如此,我仍然非常想知道一个可能的解决方案,因为我没有定期访问可以进行计算的Windows机箱。
答案 0 :(得分:0)
您错过了关键代码行,您实际将图形转换为图像并将其发送到VideoWriter,因此很难提供很多帮助。但是,如果您还没有这样做,我建议您使用export_fig执行此任务。