OpenCV:完成后如何重新启动视频?

新手上路,请多包涵

我正在播放一个视频文件,但播放完后如何再次播放?

哈维尔

原文由 ziiweb 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 684
1 个回答

如果您想一遍又一遍地重新启动视频(也就是循环播放),您可以使用 if 语句来判断帧数何时达到 cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT) 然后重置帧数和 cap.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, num) 到相同的值。我将 OpenCV 2.4.9 与 Python 2.7.9 一起使用,下面的示例不断为我循环播放视频。

 import cv2

cap = cv2.VideoCapture('path/to/video')
frame_counter = 0
while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()
    frame_counter += 1
    #If the last frame is reached, reset the capture and the frame_counter
    if frame_counter == cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT):
        frame_counter = 0 #Or whatever as long as it is the same as next line
        cap.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, 0)
    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

它还可以重新捕获视频而不是重置帧数:

 if frame_counter == cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT):
    frame_counter = 0
    cap = cv2.VideoCapture(video_name)

原文由 joelostblom 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏