用opencv读取、显示、保存视频

用摄像头捕捉视频

#用摄像头捕获视频,并把它转换成灰度图像显示出来
#先创建一个VideoCapture对象,参数可以是设备的索引,或者是一个视频文件。设备索引号就是指定要使用的摄像头。
#一般笔记本都有内置摄像头,所以参数是0(也可以1或者其他来选择其他摄像头)。之后一帧一帧捕获视频,最后,一定要release()
cap=cv2.VideoCapture(0)#创建一个VideoCapture对象,参数为0
while(True):#取帧;灰化;显示;
    ret,frame=cap.read()#ret是一个返回值,看是否成功了;frame是返回的一帧一帧的图像
    gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#参数还有:cv2.COLOR_BGR2RGB、cv2.COLOR_BGR2HSV、cv2.COLOR_BGR2YCrCb、 cv2.COLOR_BGR2HLS、cv2.COLOR_BGR2XYZcv2.COLOR_BGR2LAB、cv2.COLOR_BGR2YUV
    cv2.imshow('frame',frame)
    if cv2.waitKey(1)==ord('q'):#waitKey()里的数字越大,延时约厉害,毕竟是等待嘛,hh
        break
cap.release()
cv2.destroyAllWindows()
#cap可能不能成功初始化摄像头设备。这种情况下上面的的代码会报错。可以用cap.isOpened(),来检查是否成功初始化了。若返回值是True,没问题。反之要用cap.open()
#可用cap.get(propId)来获取视频的一些信息。propId为0~18.
#可用cap.set(propId,value)来修改值

记录、保存视频

cap=cv2.VideoCapture(0)
#VideoWriter(filename, fourcc, fps, frameSize,[ isColor]) 第一个参数是要保存的文件的路径;fourcc 指定编码器;fps 要保存的视频的帧率;frameSize 要保存的文件的画面尺寸;isColor 指示是黑白画面还是彩色的画面,True为彩色
fourcc=cv2.VideoWriter_fourcc(*'XVID')
out=cv2.VideoWriter('output.avi',fourcc,20,(640,480),True)#改位置的话和上面的图片存入固定目录是一样的
while(cap.isOpened()):
    ret,frame=cap.read()
    if ret==True:
        frame=cv2.flip(frame,0)#倒转,1:水平翻转;0:垂直翻转;-1:水平垂直翻转
        out.write(frame)
        cv2.imshow('frame',frame)
        if cv2.waitKey(1)==ord('q'):
            break
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值