使用OpenCV录制视频时编辑帧

2024-04-19 14:08:58 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有可能在录制视频时获得帧,同时在这些图像上写入当前时间?我一直在找这个,但什么也找不到。我想在每个帧上写时间和/或用时间戳保存那些帧。我无法从每一帧的视频中获得时间信息,所以我想出了这个解决方案。我愿意接受任何意见。提前谢谢


Tags: 图像信息视频时间解决方案意见
1条回答
网友
1楼 · 发布于 2024-04-19 14:08:58

是的,这是可能的。cap.get(0)标志(cap是cv2.VideoCapture对象)以毫秒为单位给出帧的时间戳。您可以按以下步骤进行:

import cv2
# If you want to write system time instead of frame timestamp then import datetime
# import datetime

filepath = '.../video.mp4'
cap = cv2.VideoCapture(filepath)
# If capturing from webcam then as follows:
# cap = cv2.VideoCapture(0)

while(True):

    # Capture frame-by-frame
    ret, frame = cap.read()

    if(ret== False):
        break

    current_time = cap.get(0)
    # If you want system time then replace above line with the following:
    # current_time = datetime.datetime.now()

    cv2.putText(frame,'Current time:'+str(current_time), 
        (10, 100), 
        cv2.FONT_HERSHEY_SIMPLEX, 
        1,
        (255,255,255),
        2)

    # Display the resulting frame
    cv2.namedWindow('Frame with timestamp')
    cv2.imshow('Frame with timestamp',frame)

    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()


希望这有帮助:)

相关问题 更多 >