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使用Apriori算法进行关联性解析
Dec 21 Python
快速解决安装python没有scripts文件夹的问题
Apr 03 Python
python队列queue模块详解
Apr 27 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
python爬取cnvd漏洞库信息的实例
Feb 14 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
Apr 04 Python
python可视化爬虫界面之天气查询
Jul 03 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
使用Django搭建一个基金模拟交易系统教程
Nov 18 Python
Docker如何部署Python项目的实现详解
Oct 26 Python
python实现自动清理文件夹旧文件
May 10 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
收集的DedeCMS一些使用经验
2007/03/17 PHP
Laravel使用消息队列需要注意的一些问题
2017/12/13 PHP
PHP集成环境XAMPP的安装与配置
2018/11/13 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
js简单实现点击左右运动的方法
2015/04/10 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
JavaScript中的Math.SQRT1_2属性使用简介
2015/06/14 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
使用Python脚本生成随机IP的简单方法
2015/07/30 Python
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
python递归查询菜单并转换成json实例
2017/03/27 Python
python爬虫面试宝典(常见问题)
2018/03/02 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
html5 Canvas画图教程(11)—使用lineTo/arc/bezierCurveTo画椭圆形
2013/01/09 HTML / CSS
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
什么是Remote Module
2016/06/10 面试题
上班玩手机检讨书
2014/02/17 职场文书
机关单位动员会主持词
2014/03/20 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
导游词之太湖
2019/10/08 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android