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服务器拒绝服务攻击代码
Jan 16 Python
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
Python下载懒人图库JavaScript特效
May 28 Python
Python3实现转换Image图片格式
Jun 21 Python
详解Python sys.argv使用方法
May 10 Python
python基于递归解决背包问题详解
Jul 03 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
Python魔法方法 容器部方法详解
Jan 02 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
Python sqlite3查询操作过程解析
Feb 20 Python
python中HTMLParser模块知识点总结
Jan 25 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
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
浅析PHP 按位与或 (^ 、&)
2013/06/21 PHP
php出现内存位置访问无效错误问题解决方法
2014/08/16 PHP
php制作文本式留言板
2015/03/18 PHP
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
jquery用data方法获取某个元素上的事件
2014/06/23 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
javascript操作数组详解
2014/12/17 Javascript
WordPress中鼠标悬停显示和隐藏评论及引用按钮的实现
2016/01/12 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
Bootstrap Modal遮罩弹出层(完整版)
2016/11/21 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
vue与vue-i18n结合实现后台数据的多语言切换方法
2018/03/08 Javascript
页面内锚点定位及跳转方法总结(推荐)
2019/04/24 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
Python向日志输出中添加上下文信息
2017/05/24 Python
Python中static相关知识小结
2018/01/02 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解
2020/06/08 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
python中not、and和or的优先级与详细用法介绍
2020/11/03 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
Html5实现文件异步上传功能
2017/05/19 HTML / CSS
英国安全产品购物网站:The Safe Shop
2017/03/20 全球购物
课堂教学改革实施方案
2014/03/17 职场文书
师德师风建设方案
2014/05/08 职场文书
相亲大会策划方案
2014/06/05 职场文书
2015秋季运动会通讯稿
2015/07/18 职场文书
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS