如何解决使用 OpenCV 为单个帧创建时间戳
你好,这是我的第一篇文章,我对此很陌生。我看到 stackoverflow 的社区非常友好和乐于助人,所以我来这里学习!
我目前正在将视频切成帧,我能够找到其他代码并打印出帧数和帧图像,但是,我希望能够打印出带有帧数注释的帧(我们是以 30fps)和时间(以分、秒和毫秒为单位)处理图像。
另外一个问题,我对下面这段代码有点困惑,这段代码到底做了什么
calc_timestamps.append(calc_timestamps[-1] + 1000/fps)
print('帧 %d 差异:'%i,abs(ts - cts))
import cv2
import datetime
cap = cv2.VideoCapture("/content/gdrive/Shareddrives/SimonNguyen/Exp12_Videos/Exp12_icevid.wmv")
fps = cap.get(cv2.CAP_PROP_FPS)
timestamps = [cap.get(cv2.CAP_PROP_POS_MSEC)]
f_pos = cap.get(cv2.CAP_PROP_POS_FRAMES)
calc_timestamps = [0.0]
while(cap.isOpened()):
frame_exists,curr_frame = cap.read()
if frame_exists:
timestamps.append(cap.get(cv2.CAP_PROP_POS_MSEC))
f_pos.append(cap.get(cv2.CAP_PROP_POS_FRAMES))
calc_timestamps.append(calc_timestamps[-1] + 1000/fps)
else:
break
cap.release()
for i,(ts,cts) in enumerate(zip(timestamps,calc_timestamps)):
print('Frame:'%i,ts)
# print('Frame %d difference:'%i,abs(ts - cts))
#print frames
while(True):
(ret,frame) = cap.read()
#cv2_imshow(frame)
if not ret:
break
cap.release()
cv2.destroyAllWindows()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。