微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 在OpenCV中检索当前帧编号

如何使用OpenCV检索视频的当前帧编号? OpenCV是否具有用于获取当前帧的任何内置函数,或者我必须手动执行此操作?

解决方法

您可以使用捕获对象的“get”方法,如下所示:
capture.get(CV_CAP_PROP_POS_FRAMES); // retrieves the current frame number

并且 :

capture.get(CV_CAP_PROP_FRAME_COUNT); // retuns the number of total frames

顺便说一下,这些方法返回一个double值.

您还可以使用cvGetCaptureProperty方法.

cvGetCaptureProperty(CvCapture * capture,int property_id);

property_id选项如下所示:

CV_CAP_PROP_POS_MSEC 0

CV_CAP_PROP_POS_FRAME 1

CV_CAP_PROP_POS_AVI_RATIO 2

CV_CAP_PROP_FRAME_WIDTH 3

CV_CAP_PROP_FRAME_HEIGHT 4

CV_CAP_PROP_FPS 5

CV_CAP_PROP_FOURCC 6

CV_CAP_PROP_FRAME_COUNT 7

POS_MSEC是视频文件中的当前位置,以毫秒为单位.POS_FRAME是帧编号中的当前位置.POS_AVI_RATIO是以0到1之间的数字给出的位置(当您想要定位轨迹栏以允许人们浏览您的视频时,这实际上非常有用).FRAME_WIDTH和FRAME_HEIGHT是视频各个帧的尺寸要读取(或在相机的当前设置下捕获).FPS特定于视频文件,并指示捕获视频的每秒帧数;您如果你想播放你的视频并让它出来,你将需要知道这一点正确的速度.FOURCC是用于您当前正在阅读的视频的压缩编解码器的四字符代码.FRAME_COUNT应该是视频中的总帧数,但这个图片并不完全可靠.(来自Learning OpenCV的书)

原文地址:https://www.jb51.cc/c/116638.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐