opencv调取摄像头录制

举报
lqj_本人 发表于 2023/03/09 23:33:58 2023/03/09
【摘要】 opencv调取摄像头录制

视频录制

VideoWriter

参数1为:输出文件;

参数2为:多媒体文件格式VideoWriter_fourcc;

参数3为:帧数

参数4为:分辨率

write编写并写入缓存

release缓存内容写入磁盘,并释放资源

1.导入cv库及定义窗口

import cv2 #导入cv2库
 
cv2.namedWindow('frame', cv2.WINDOW_NORMAL)  # 创建一个窗口名字为window
cv2.resizeWindow('frame', 800, 600)  # 更改窗口的大小

2.调用摄像头

cap = cv2.VideoCapture(0)

3.指定输出视频的格式

# *mp4v就是解包操作 等同于 'm','p','4','v'

fourcc = cv2.VideoWriter_fourcc(*'mp4v')

4.设置输出视频的属性

属性一:output.mp4——定义输出后的视频名字

属性二:fourcc——指定视频的格式(根据上一条代码的赋值)

属性三:20——设置帧数

属性四:(640,480)——设置摄像头的分辨率

vw = cv2.VideoWriter('output.mp4',fourcc,20,(640,480))

5.判断摄像头是否正确打开

while cap.isOpened():
    ret,frame = cap.read()
    if not ret:
        break

6.写入每一帧数据,并显示窗口

vw就是4.命令行中定义并赋值过的vw

    vw.write(frame)
    cv2.imshow('frame',frame)

7.监听键盘按键退出

    if cv2.waitKey(10) == ord('q'):
        break

8.释放窗口资源

cap为打开的摄像头的资源

vw为写入数据资源

cap.release()
vw.release()
cv2.destroyAllWindows()

完整学习代码

import cv2 #导入cv2库
 
cv2.namedWindow('frame', cv2.WINDOW_NORMAL)  # 创建一个窗口名字为window
cv2.resizeWindow('frame', 800, 600)  # 更改窗口的大小
 
cap = cv2.VideoCapture(0)
# *mp4v就是解包操作 等同于 'm','p','4','v'
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
#主要是这个分辨率
#output.mp4输出后的视频名字,fourcc指定的视频格式,20:帧数,(640,480)摄像头的分辨率
vw = cv2.VideoWriter('output.mp4',fourcc,20,(640,480))
 
while cap.isOpened():
    ret,frame = cap.read()
    if not ret:
        break
    #写每一帧的数据
    vw.write(frame)
    cv2.imshow('frame',frame)
 
    if cv2.waitKey(10) == ord('q'):
        break
 
 
#释放videowriter
cap.release()
vw.release()
cv2.destroyAllWindows()

结果显示

运行后就会录制并保存我们摄像头所录制的全部内容

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。