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 相关文章推荐
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
Sep 26 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
Django Rest framework之权限的实现示例
Dec 17 Python
Python实现二维曲线拟合的方法
Dec 29 Python
python 实现selenium断言和验证的方法
Feb 13 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
Aug 22 Python
django多种支付、并发订单处理实例代码
Dec 13 Python
Python+OpenCV实现旋转文本校正方式
Jan 09 Python
基于Python绘制个人足迹地图
Jun 01 Python
Python实现壁纸下载与轮换
Oct 19 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 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
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
PHP的加密方式及原理
2012/06/14 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
深入理解PHP变量的值类型和引用类型
2015/10/21 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
2018/05/30 PHP
使javascript也能包含文件
2006/10/26 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
基于JavaScript的操作系统你听说过吗?
2016/01/28 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
Vue中的Props(不可变状态)
2018/09/29 Javascript
JavaScript中Dom操作实例详解
2019/07/08 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
uni-app 自定义底部导航栏的实现
2020/12/11 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
js中延迟加载和预加载的具体使用
2021/01/14 Javascript
Python CSV模块使用实例
2015/04/09 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
python实现简单http服务器功能
2018/09/17 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
linux面试题参考答案(4)
2013/01/28 面试题
生育关怀行动实施方案
2014/03/26 职场文书
特岗教师个人总结
2015/02/10 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
学校百日安全活动总结
2015/05/07 职场文书
十八大观后感
2015/06/12 职场文书
冰雪公主观后感
2015/06/16 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书