前言
最近有小伙伴问我怎么设置随时间改变放大因子,实现在一个视频中放大倍数不断变化的效果。现在我们来看一下。
理论推导
首先我们知道在视频处理中,时间的概念是由帧数间接体现出来的。如下图,我们打开一个视频文件,右键属性可以查看到视频的帧频Fr(frame rate)和总时长time。
那么总的帧数len=Fr*time就可以求得。或是时间精度的问题,这里的len在程序里读到301帧,并且放大部分是从第2帧到第291帧。舍弃了后10帧,第一帧未放大。故len=291.
本视频推荐的放大因子alpha=10,我们让alpha的波动范围在(0,max)内。我们现在来设置alpha与时间变化关系。
令 a l p h a = f ( i ) alpha=f(i) alpha=f(i) 而 i = t × l e n t i m e i=t\times \dfrac{len}{time} i=t×timelen
其中 i 是程序处理到的帧数, t 是该帧数对应的时间。
则 a l p h a = f ( l e n t i m e t ) alpha=f(\dfrac{len}{time}t) alpha