• OpenCV使用教程-读取视频VideoCapture


    1、方法说明:

    import cv2 as cv
    video=cv.VideoCapture(filename[, flags])
    
    • 1
    • 2

    2、读取视频思路:视频是由每一帧图片组成,读取图片本身就是读取图片;

    ret,img=video.read()
    
    • 1
    • ret:是否读取到帧数
    • img: 图片矩阵
    if video.isOpened():
        # ret:是否读取到?
        # img:图片矩阵?
        ret,img=video.read()
        print(type(ret))
        print(type(img))
    else:
        ret=False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    通过循环将每一帧图片展示出来

    while open:
        ret,frame=video.read()
        if frame is None:
            break
        if ret==True:
            img=cv.cvtColor(frame,cv.IMREAD_COLOR)
            cv.imshow("result",img)
            if cv.waitKey(1) & 0xFF ==27:#设置等待时间(毫秒级)以及 退出按钮:27表示Esc按键
                        break
    # 视频资源释放
    video.release()
    # 关闭所有窗口
    cv.destroyAllWindows()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    3、读取视频案例如下:

    读取视频案例,下面案例展示了视频读取思路,通过设置while循环进行帧数播放,达到读取图片的效果;

    import cv2 as cv
    
    # 读取视频,返回一个视频VideoCapture对象;
    video=cv.VideoCapture("../sources/cyq.mp4")
    print(type(video))
    
    if video.isOpened():
        # open:是否读取到?
        # frame:图片矩阵?
        open,frame=video.read()
        print(type(open))
        print(type(frame))
    else:
        open=False
    
    while open:
        ret,frame=video.read()
        if frame is None:
            break
        if ret==True:
            img=cv.cvtColor(frame,cv.IMREAD_COLOR)
            cv.imshow("result",img)
            if cv.waitKey(1) & 0xFF ==27:
                break
    video.release()
    cv.destroyAllWindows()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
  • 相关阅读:
    hboot与recovery、boot.img、system.img
    Python图像和视频上传
    https部署(nginx代理) keycloak ,js加载不出来的问题
    图解辗转相除法求解最大公约数
    DS Transunet:用于医学图像分割的双Swin-Transformer U-Net
    网络安全(黑客)自学笔记
    线代小课整理
    新体验经济@2022: 世界杯、啤酒与供应链
    外卖项目09---Redis了解
    制造业数字化转型的实质
  • 原文地址:https://blog.csdn.net/weixin_44894162/article/details/126782829