当前位置: 首页 > news >正文

opencv调取摄像头录制

  大家好,我是csdn的博主:lqj_本人

这是我的个人博客主页:

lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343哔哩哔哩欢迎关注:小淼前端

小淼前端的个人空间_哔哩哔哩_bilibili

本篇文章主要讲述python的人工智能视觉领域(opencv),本篇文章已经成功收录python人工智能视觉(opencv)从入门到实战专栏中:

https://blog.csdn.net/lbcyllqj/category_12200666.htmlicon-default.png?t=N176https://blog.csdn.net/lbcyllqj/category_12200666.html

 视频录制

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()

结果显示

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

 

http://www.lryc.cn/news/4565.html

相关文章:

  • html标签手册
  • SpringMVC--视图、RESTful案例、处理AJAX请求
  • 一个同学升了leader,今年活还没干,他就已经想好组里成员的两次绩效考核怎么打了,还说:leader都是这样的!...
  • Docker 面试知识点
  • C++高级篇学习笔记
  • gentoo基本安装过程
  • 【LeetCode】1234. 替换子串得到平衡字符串
  • [动手写操作系统]-01-开机运行系统
  • 最长回文子序列问题
  • 月薪11k!从财务专员到软件测试工程师,成都校区小哥哥用三个月实现转行换岗
  • Android 逆向工具大整理,碉堡了
  • 二维数组的定义
  • SpringMVC--获取请求参数、域对象共享数据
  • 2月13日,30秒知全网,精选7个热点
  • 【C++设计模式】学习笔记(2):模式分类与模版方法 Template Method
  • 【Swift 60秒】92 - Nil coalescing
  • python pip安装的包的路径
  • 个人收藏学习
  • 【C++】类和对象---需掌握的功能
  • 2.12、进程互斥的软件实现方法
  • Java面试题-数据库
  • select 与 where、group by、order by、limit 子句执行优先级比较
  • 【Docker】用开源umami监控你的站点访问量
  • java环境配置
  • Linux系统服务:Apache安装及配置应用
  • 动态规划(Dynamic Programming)——背包问题
  • JVM学习02:内存结构
  • 6年软件测试经验,从我自己的角度理解自动化测试
  • 三种方式查看linux终端terminal是否可以访问外网ping,curl,wget
  • 【Call for papers】SIGCOMM-2023(CCF-A/计算机网络/2023年2月15日截稿)