• 视频分帧


    1.每隔几帧取一张

    import cv2
     
    cap = cv2.VideoCapture("./query_video/test_video_0.mp4")
    c = 1
    frameRate = 10  # 帧数截取间隔(每隔100帧截取一帧)
     
    while(True):
        ret, frame = cap.read()
        if ret:
            if(c % frameRate == 0):
                print("开始截取视频第:" + str(c) + "")
                # 这里就可以做一些操作了:显示截取的帧图片、保存截取帧到本地
                cv2.imwrite("./capture_image/" + str(c) + '.jpg', frame)  # 这里是将截取的图像保存在本地
            c += 1
            cv2.waitKey(0)
        else:
            print("所有帧都已经保存完成")
            break
    cap.release()

    2.每隔几秒取一张

    import cv2
    cap = cv2.VideoCapture("./query_video/test_video_0.mp4")
    c = 1
    timeRate = 10  # 截取视频帧的时间间隔(这里是每隔10秒截取一帧)
     
    while(True):
        ret, frame = cap.read()
        FPS = cap.get(5)
        if ret:
            frameRate = int(FPS) * timeRate  # 因为cap.get(5)获取的帧数不是整数,所以需要取整一下(向下取整用int,四舍五入用round,向上取整需要用math模块的ceil()方法)
            if(c % frameRate == 0):
                print("开始截取视频第:" + str(c) + "")
                # 这里就可以做一些操作了:显示截取的帧图片、保存截取帧到本地
                cv2.imwrite("./capture_image/" + str(c) + '.jpg', frame)  # 这里是将截取的图像保存在本地
            c += 1
            cv2.waitKey(0)
        else:
            print("所有帧都已经保存完成")
            break
    cap.release()

    参考:https://blog.csdn.net/David_jiahuan/article/details/105550791

  • 相关阅读:
    [Vijos] 天才的记忆
    [Vijos] 河蟹王国
    [Vijos] SuperBrother打鼹鼠
    [Vijos] 弱弱的战壕
    [洛谷P3792] 由乃与大母神原型和偶像崇拜
    【模板】乘法逆元
    [USACO13NOV]空荡荡的摊位Empty Stalls
    [USACO08OPEN]牛的车Cow Cars
    [SCOI2005]扫雷
    [USACO16OPEN]关闭农场Closing the Farm_Silver
  • 原文地址:https://www.cnblogs.com/StarZhai/p/14717847.html
Copyright © 2020-2023  润新知