python+opencv 调摄像头,保存视频

4 篇文章 0 订阅
2 篇文章 0 订阅

2020疫情期间没事,研究了python的工具库numpy、pandas、matplotlib、opencv,人工智能、数据分析等知识;其中opencv也是非常好用的库,对图像处理很方便,在人工智能方面也有很高的使用频率,下面分享一下opencv调用摄像头,保存视频的。当然你得有摄像头。

1、首先要安装opencv

pip install opencv-python   #这种安装方式默认安装国内可能网速很慢

#国内基本都是用国内几大源地址安装,例如

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python  #清华的下载速度就很快

2、导入库 

import cv2 as cv
import os  #用于处理文件
import time

3、调用摄像头

cap = cv.VideoCapture(0)   #0 代表 系统第一个摄像头,如果有多个摄像头,使用1,2...
f = cap.isOpened() 

4、显示视频

 while f:
        ret, frame = cap.read()  
        if not ret:
            print("Can't receive frame (stream end?). Exiting ...")
            break
        frame = cv.flip(frame, 1)  #翻转  一下

        cv.imshow('frame', frame) #显示
        if cv.waitKey(1) == ord('q'):  #按 Q键 退出
            break

5、创建视频流文件

width = cap.get(cv.CAP_PROP_FRAME_WIDTH)   #获取摄像头width
height = cap.get(cv.CAP_PROP_FRAME_HEIGHT)  #获取摄像头height
size = (int(width),int(height))    

fourcc = cv.VideoWriter_fourcc(*'DIVX') # 定义编解码器并创建VideoWriter对象
                                        # 参数还可以 DIVX,XVID,MJPG,X264,WMV1,WMV2。
path = os.getcwd()  #获取当前路径
vpath =  path + '\Video' #视频目录

if not(os.path.exists(vpath)):
    #print('n')  #没有就建一个
    os.makedirs(vpath)
#创建VideoWriter,用于写视频
out = cv.VideoWriter( vpath + '\\' + time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime()) + '.mp4', fourcc, 24.0, size)

6、写入视频

if not(out.isOpened()):
    print('out is not opened',out)  #写入文件没打开,这里opencv不报错,咱们给出提示,直接退出
else:
    while f:
        ret, frame = cap.read()
        if not ret:
            print("Can't receive frame . Exiting ...")
            break
        frame = cv.flip(frame, 1)   #翻转一下
        # 写翻转的框架
        out.write(frame)
        cv.imshow('frame', frame)   #显示一下图像
        if cv.waitKey(1) == ord('q'):
            break

7、最后销毁

# 完成工作后释放所有内容
cap.release()
out.release()
cv.destroyAllWindows()

 

总结:将代码融合一下就可以调取摄像头了,同时还可以保存视频流。这种视频流没有声音,后期再完善。

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值