在 opencv 中放入 waitkey 需要多少毫秒 python

how much miliseconds to put in waitkey in opencv python

我想用 OpenCV 在 python 中显示视频,我知道该怎么做,但我就是这样做的

import cv2

cap = cv2.VideoCapture("Resorces/test.mp4")

while True:
    success, img = cap.read()
    cv2.imshow("video", img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

但问题是在第 2 行有一个 cv2.waitKey 那里我插入了 1 英里但是视频的长度是 30 秒通过这样做视频非常快并且很快结束

所以我希望视频是 30 秒,所以我应该放什么

这是我的视频 https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_640_3MG.mp4

请帮帮我 谢谢

使用fps = cap.get(cv2.CAP_PROP_FPS)得到每秒的帧数然后你可以除以1000 / fps也就是每秒1000毫秒并转换为int得到帧延迟以获得真实的回放。

注意:图像中有一些开销读取,所以这只是近似值,但在实践中我发现只要您不在 while 循环中进行任何繁重的处理就足够了。

完整代码清单,

import cv2

cap       = cv2.VideoCapture("Resorces/test.mp4")
fps       = cap.get(cv2.CAP_PROP_FPS)
frm_delay = int(1000 / fps)

while True:
    success, img = cap.read()
    cv2.imshow("video", img)
    if cv2.waitKey(frm_delay) & 0xFF == ord('q'):
        break