【问题标题】:how to extract a particular frame from video stream using Opencv & Python如何使用 Opencv 和 Python 从视频流中提取特定帧
【发布时间】:2025-11-22 05:55:02
【问题描述】:

我想每 200 毫秒网络摄像头 的视频流中提取和处理帧,我尝试了 frameRate = cap.get(5) ie.(CAP_PROP_FPS) 和 frameIndex = cap.get(1) ie.(CAP_PROP_POS_FRAMES) 但我得到 frameRate = 0.0 & frameIndex = -1.0。 请帮助,任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: python opencv video-capture


    【解决方案1】:

    对于简单的应用程序,我会在我的代码中使用 cv2.waitKey() 来引入延迟。如果您希望每 200 毫秒精确一帧,则必须添加时间测量,例如此处所述:

    Python speed testing - Time Difference - milliseconds

    我会在我的代码中包含一个 if 语句并等到时间差等于 200 毫秒。

    正如我在一开始提到的那样,它很简单,不是最好的解决方案,但最容易开始实施。

    【讨论】:

    • 非常感谢。我尝试了您的建议(日期时间),它对我有用,因为我的 while 循环(while cap.isOpened():) 花费的时间不超过 100-150 毫秒。正如您所说,这是一个简单的解决方案,但不是最好的,因为它既简单又最好,因为如果只有一帧需要超过 200 毫秒的处理时间,无论如何我都会错过下一帧。
    最近更新 更多