python 基于opencv操作摄像头


Posted in Python onDecember 24, 2020

要使用摄像头,需要使用cv2.VideoCapture(0)创建VideoCapture对象,参数0指的是摄像头的编号,如果你电脑上有两个摄像头的话,访问第2个摄像头就可以传入1,依此类推。

# 打开摄像头并灰度化显示
import cv2 as cv 
# 0表示摄像头的编号
capture = cv.VideoCapture(0)

while(True):
  # 获取一帧
  # 第1个参数ret(return value缩写)是一个布尔值,表示当前这一帧是否获取正确
  ret, frame = capture.read()
  # 将这帧转换为灰度图
  gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

  cv.imshow('frame', gray)
  if cv.waitKey(1) == ord('q'):
    break

摄像头捕捉到的图像:

python 基于opencv操作摄像头

获取并修改摄像头的属性值

通过capture.get(propId)可以获取摄像头的一些属性,比如捕获的分辨率,亮度和对比度等。propId是从0~18的数字,代表不同的属性。要修改摄像头的属性值,可以使用capture.set(propId,value)。比如说,我们在while之前添加下面的代码,可以捕获相对于上面2倍分辨率的视频。

# 获取捕获的分辨率
# propId可以直接写数字,也可以用OpenCV的符号表示
width, height = capture.get(3), capture.get(4)
print(width, height)

# 以原分辨率的一倍来捕获
capture.set(cv.CAP_PROP_FRAME_WIDTH, width * 2)
capture.set(cv.CAP_PROP_FRAME_HEIGHT, height * 2)

捕获的2倍分辨率于原先的图像:

python 基于opencv操作摄像头

播放本地视频

跟打开摄像头一样,如果把摄像头的编号换成视频的路径就可以播放本地视频了。回想一下cv.waitKey(),它的参数表示暂停时间,所以这个值越大,视频播放速度越慢,反之,播放速度越快,通常设置为25或30。

# opencv播放本地视频
import cv2 as cv

capture = cv.VideoCapture('E:/1.mp4')

while(capture.isOpened()):
  ret, frame = capture.read()
  gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)

  cv.imshow('frame', gray)
  if cv.waitKey(30) == ord('q'):
    break

播放中的 E:/1.mp4 :

python 基于opencv操作摄像头

录制视频并保存

之前我们保存图片用的是cv.imwrite(),要保存视频,我们需要创建一个VideoWriter的对象,需要给它传入四个参数:
1.输出的文件名,如'output.avi'
2.编码方式FourCC码
3.帧率FPS
4.要保存的分辨率大小
FourCC是用来指定视频编码方式的四字节码。如MJPG编码可以这样写: cv.VideoWriter_fourcc(*'MJPG')或cv.VideoWriter_fourcc('M','J','P','G')

import cv2 as cv

capture = cv.VideoCapture(0)

# 定义编码方式并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc(*'MJPG')
outfile = cv.VideoWriter('output.avi', fourcc, 25., (640, 480))

while(capture.isOpened()):
  ret, frame = capture.read()

  if ret:
    outfile.write(frame) # 写入文件
    cv.imshow('frame', frame)
    if cv.waitKey(1) == ord('q'):
      break
  else:
    break

如愿以偿在当前路径下生成了output.avi :

python 基于opencv操作摄像头

以上就是python 基于opencv操作摄像头的详细内容,更多关于python opencv操作摄像头的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python中的列表推导浅析
Apr 26 Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
Python 读取串口数据,动态绘图的示例
Jul 02 Python
django的model操作汇整详解
Jul 26 Python
django数据模型on_delete, db_constraint的使用详解
Dec 24 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
详解python日志输出使用配置文件格式
Feb 10 Python
pandas统计重复值次数的方法实现
Feb 20 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 #Python
python实现简单猜单词游戏
Dec 24 #Python
Python 虚拟环境工作原理解析
Dec 24 #Python
python基于openpyxl生成excel文件
Dec 23 #Python
Python+unittest+requests+excel实现接口自动化测试框架
Dec 23 #Python
用python计算文件的MD5值
Dec 23 #Python
python中lower函数实现方法及用法讲解
Dec 23 #Python
You might like
如何选购合适的收音机
2021/03/01 无线电
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
php支付宝手机网页支付类实例
2015/03/04 PHP
php数据访问之查询关键字
2016/05/09 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
2019/10/12 PHP
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
nodejs win7下安装方法
2012/05/24 NodeJs
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
Python中asyncore的用法实例
2014/09/29 Python
Python自动生产表情包
2017/03/17 Python
使用python实现BLAST
2018/02/12 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
pandas分区间,算频率的实例
2019/07/04 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
DHC中国官方购物网站:日本通信销售No.1化妆品
2016/08/20 全球购物
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
澳大利亚宠物商店:Petbarn
2017/11/18 全球购物
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
妇产医师自荐信
2014/01/29 职场文书
优秀员工推荐信
2014/05/10 职场文书
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技