按时间从视频中获取帧(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因此,FrameIndex在这种情况下是72.5,在这种情况中,我会选择frameNO:72或73,但我觉得这还不够准确,还有更好的解决方案吗?
实现这一点的最佳和准确方法是什么?
您可以使用的最准确的东西是帧时间。当你说一个事件发生在2500毫秒时,这个时间是从哪里来的?为什么它与你的帧速率不一致?你只有2483ms和2517ms的视频数据点,这是无法绕过的。
如果在视频中跟踪对象,并且希望其位置为t=2500,则可以根据已知数据点对位置进行插值。可以通过在相邻帧之间进行线性插值来实现,也可以通过在对象轨迹上拟合曲线并求解目标时间来实现。
如果你想在t=2500时重建一个完整的框架,那么它要复杂得多,而且仍然是一个悬而未决的问题。
相关文章:
- OpenCV 4.1.2 - 从网络摄像头获取帧并将其拆分
- 如何在 ORB 检测 OpenCV ++ 中获取校正角度?
- 使用 opencv 凸胡尔 获取给定点的面积. - 点到垫子转换期间发生错误
- OPENCV 3.4.1获取经过定制训练的线性SVM HOG DETECTMULTISCALE的原始形式
- 遍历区域并在 OpenCV 中获取平均像素值
- 如何在 OpenCV 3.0 c++ 中获取链码 xml 文件
- 从直方图OPENCV中的峰中获取色调值
- 获取具有X,Y和距离的OPENCV中的3D坐标
- opencv::Mat,从原始数据中获取像素值
- OpenCV - 获取图像的一部分
- OpenCV从2D像素获取3D坐标
- 从OpenCV MLP响应中获取最高值(概率)位置
- OpenCV获取连接的边
- c++opencv获取编码的网络摄像头流
- OpenCV:获取相机分辨率C++
- "&":对绑定成员函数表达式的非法操作。从关键点矢量 OpenCV 获取容量
- 从mat C openCV获取数据
- 视频AR无人机的随机帧为空,然后无法使用OpenCV获取新图像
- 如何使用opencv获取位置并绘制矩形
- 使用Opencv获取多张图片的标准偏差