繁体   English   中英

按时间从视频获取帧(openCV)

[英]Get the frame from Video by the time (openCV)

我有一个视频,在这个视频中有重要的时刻例如:

    "frameTime1": "00:00:01.00"
    "frameTime2": "00:00:02.50"
    "frameTime2": "00:00:03.99"
    .
    .
    .

我得到了FPS ,我得到了totalFrameCount

如果要获取该时间段内的帧,例如这段时间内发生的帧“ frameTime2”:“ 00:00:02.50”,我将执行以下代码

FrameIndex = (Time*FPS)/1000; //1000 Because 1 second = 100 milli second

在这种情况下00:00:02.50 = 2500毫秒,而FPS = 29因此,在这种情况下, FrameIndex72.5 ,在这种情况下,我将选择frameNO:72或73,但是我觉得不够准确,更好解?

最佳准确的方法是什么?

您拥有的最准确的信息帧时间。 当您说某个事件发生在2500毫秒时,这一次是从哪里来的? 为什么它与您的帧率不一致? 您只有2483ms和2517ms的视频数据点,没有办法解决。

如果要跟踪视频上的对象,并且希望将其位置设置为t = 2500,则可以从已知数据点内插该位置。 您可以通过在相邻帧之间进行线性插值,或者通过在对象轨迹上拟合曲线并求解目标时间来实现。

如果要在t = 2500时重建一个完整的帧,则要复杂得多,但仍然是一个开放的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM