我有几个视频,我想一帧一帧地浏览,并通过按键盘键(这取决于帧)来注释其中的一些视频。对于许多帧,我不会按任何键。到目前为止,我掌握的情况如下:
import numpy as np
import cv2
cap = cv2.VideoCapture('video.mp4')
frame_number = []
annotation_list = []
i = 0
while(True):
# Read one frame.
ret, frame = cap.read()
# Show one frame.
cv2.imshow('frame', frame)
# Set the time between frames in miliseconds
c = cv2.waitKey(500)
i = i + 1
try:
annotation_list = annotation_list + [chr(c)]
frame_number = frame_number + [i]
except:
continue
所以这是显示每一帧0.5秒,并关联到我按下按钮的每一帧,给定的字母。我现在需要的是一个选项,以便对于给定的帧,我可以在该帧停止视频,只要我需要,通过按“空格”例如,为了思考如何注释它,然后按“空格”再次继续视频,一旦我决定如何注释。如何添加此暂停/继续选项?谢谢您!你知道吗
您可以通过从返回值
cv2.waitKey()
确定按下了什么键来实现暂停/恢复功能。要暂停视频,您可以不向cv2.waitKey()
传递任何参数(或0),该参数将无限期地等待,直到按下一个键,然后它将恢复视频。从docs:为了确定空格键是否被按下,我们可以检查返回值是否为
32
。如果按下此键,则我们无限期暂停帧,直到按下任何键,然后我们继续视频。举个例子:以后如果您想在按下某个键后执行某些操作,您可以使用以下脚本确定“键代码”:
相关问题 更多 >
编程相关推荐