首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在opencv-python中显示最后一帧?

有没有办法在opencv-python中显示最后一帧?
EN

Stack Overflow用户
提问于 2020-01-27 11:55:25
回答 1查看 931关注 0票数 1

我需要显示视频的最后一帧。我可以手动计算最后的帧数,然后运行下面的代码。

代码语言:javascript
运行
复制
last_frame_num = duration_in_seconds * video_fps #manual entry

vs = cv2.VideoCapture('test.mp4')
vs.set(cv2.CAP_PROP_POS_FRAMES, last_frame_num)

while True:
    ret, frame = vs.read()
    if ret:
        cv2.imshow('last_frame', frame)
    if cv2.waitKey(0) == 27:
        break
vs.release()
cv2.destroyAllWindows()

代码的第一行是手动输入。

有没有办法可以直接获取任何视频的最后一帧编号?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-27 20:24:33

因为您想要视频的最后一帧,所以可以使用带有CAP_PROP_FRAME_COUNT属性的VideoCapture::get。这将为您提供视频中的帧数。您可以尝试将其赋给您的变量,如下所示:

代码语言:javascript
运行
复制
last_frame_num = vs.get(cv2.CAP_PROP_FRAME_COUNT)

在我看来,它也应该有一个-1,因为CAP_PROP_POS_FRAMES采用“下一步要解码/捕获的帧的基于0的索引”。然而,很高兴看到它在没有-1的情况下也能为您工作。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59924971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档