opencv视频基本操作

本文介绍了如何使用OpenCV进行视频的基本操作,包括读取视频并显示,以及保存视频。在读取视频时,涉及了VideoCapture的使用,如isOpened(), open(), get(), set()和read()方法。而在保存视频部分,讲解了VideoWriter_fourcc()用于设置编码格式,以及VideoWriter()用于创建输出视频对象,并使用flip()和write()方法处理帧数据。" 125803907,14742467,React子组件向父组件传递数据:回调函数实战,"['react.js', 'javascript', '前端']

1.读取并显示视频

代码速记:

  • cv2.VideoCapture()
  • cap.isOpened()
  • cap.open()
  • cap.get()
  • cap.set()
  • cap.read()
  • cap.release()

实战:

def capture(self):
    #【1】创建Capture对象
    cap = cv2.VideoCapture(0)#参数为设备索引号或视频文件。0为笔记本内置摄像头
    if cap.isOpened():#检验摄像头是否打开
        print("镜头是打开的")
    else:
        cap.open(0)#打开摄像头
    print(cap.get(0))#参数是0-18的整数,每个数代表视频的一个属性
    w=cap.get(3)
    h=cap.get(4)
    ret=cap.set(3,320)#用set函数来设置某些属性值
    ret=cap.set(4,240)
    while (True):
        #【2】一帧一帧捕获
        ret, frame = cap.read()#帧读取正确就返回True。最后检查返回值看是否到视频结尾
        # 【3】把该帧图像转为灰度图像
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        # 【4】显示结果
        cv2.imshow('frame', gray)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    # 【5】释放Capture对象
    cap.release()
    cv2.destroyAllWindows()

2.保存视频

代码速记:

  • cv2.VideoWriter_fourcc()
  • cv2.VideoWriter()
  • cv2.flip()
  • out.write()

实战:

def save_video(self):
    cap = cv2.VideoCapture(0)
    # 定义codec,创建VideoWriter对象
    fourcc = cv2.VideoWriter_fourcc(*'XVID')
    #FourCC 就是一个4 字节码,用来确定视频的编码格式。
    out = cv2.VideoWriter('../res_images/output.avi', fourcc, 20.0, (640, 480))
    while (cap.isOpened()):
        ret, frame = cap.read()
        if ret == True:
            frame = cv2.flip(frame, 0)
            # 写入flip的帧
            out.write(frame)
            cv2.imshow('frame', frame)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break
        else:
            break
    # Release everything if job is finished
    cap.release()
    out.release()
    cv2.destroyAllWindows()

FourCC 就是一个4 字节码,用来确定视频的编码格式。可用的编码列表可以从fourcc.org查到。这是平台依赖的。

  • In Fedora: DIVX, XVID, MJPG, X264, WMV1, WMV2. (XVID is more preferable. MJPG results in high size video. X264 gives very small size video)
  • In Windows: DIVX (More to be tested and added)

FourCC 码以下面的格式传给程序,以MJPG 为例:
cv2.VideoWriter_fourcc('M','J','P','G')或者cv2.VideoWriter_fourcc(*'MJPG)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值