【问题标题】:Gnuplot image to movie: Twinkling effectGnuplot 图像到电影:闪烁效果
【发布时间】:2019-03-07 19:43:00
【问题描述】:

我使用 gnuplot 制作了 png 图像:

do for [i=1:imax]{
   imagefile='M'.sprintf("%5.5i",i).'.png'
   datafile='A'.sprintf("%5.5i",j).'.dat'
   plot datafile u 2:3:(rad*$6) with circles lc rgb "black" lw 3
   pause 0
}

然后我使用 avconv 来创建电影:

avconv -r $1 -i M%05d.png -c:v libx264 final_simulation.mp4

但是,我的电影在圆圈中似乎有闪烁效果,并不像普通电影那样流畅。有什么补救办法吗?

【问题讨论】:

  • 如果没有测试数据,这很难重现。您知道 gnuplot 可以制作 GIF 动画吗?也许这可能是另一种选择?检查help gif,选项animate
  • 非常感谢。我理解你的困境。但是我投稿的期刊只接受以下格式:MPG、MOV、AVI、WMV、MP4。
  • @theozh,如果你能给我一个你用来从图像文件生成电影的一般例程,那也很棒。
  • 你试过用ffmpeg吗?我通常会生成一堆 .png 文件,然后使用 ffmpeg -start_number 0 -i 'frame_%d.png' -c:v libx264 motion.mp4 将它们粘合在一起。这个问题也可能与您的视频参数有关,这意味着您每秒只有几帧。
  • 我最终也使用了 ffmpeg,所以@vladimir 的建议很好。例如,我将文件保存为set output sprintf('%07d.png', i),其中i 是迭代次数。最后,我使用ffmpeg -i %07d.png animation.avi 粘贴所有字幕。这是基本的,但效果很好。

标签: gnuplot avconv movies


【解决方案1】:

gnuplot 可以生成动画 gif。嗯,还是有轻微的闪烁。我不确定,也许您可​​以在转换为所需格式时使用外部转换器摆脱它。

例如,使用以下代码:

### animation 
reset session

set term gif size 500,400 animate delay 10 optimize 
set output "AnimatedCircle.gif"

set yrange[-1.5:1.5]
set xrange[0:1]

imax = 100.
do for [i=0:imax] {
    plot '+' u (i/imax):(sin(2*pi*i/imax)):(0.1) \
    with circles lc rgb "black" lw 3 title sprintf("Circle %d",i)
}
set output
### end of code

你会得到这个:

【讨论】:

  • 非常感谢@theozh 的代码。这奇迹般地没有闪烁效果。我会试试 gif 版本。但是,我提到的格式提交的问题仍然存在。
  • 正如@Vladimir 上面建议的那样,ffmpeg 可以转换很多格式。例如,上述所有格式的动画 GIF(WMV 除外)。通过 gnuplot 动画 GIF,您不必生成数百个临时 PNG。
  • 感谢您的帮助,但如果您仔细观察,仍然有闪烁...
  • 你可以在我发布的链接中查看它作为这个问题的答案。
【解决方案2】:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2011-09-07
    • 1970-01-01
    • 2012-08-22
    • 2015-04-25
    • 2012-05-13
    • 2010-10-29
    相关资源
    最近更新 更多