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操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
简单解析Django框架中的表单验证
Jul 17 Python
Python字符串特性及常用字符串方法的简单笔记
Jan 04 Python
Python实现计算两个时间之间相差天数的方法
May 10 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 Python
Python模块搜索路径代码详解
Jan 29 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
Python实现微信机器人的方法
Sep 06 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
Jun 02 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
总结Pyinstaller打包的高级用法
Jun 28 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/04 日漫
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
document.forms用法示例介绍
2014/06/26 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
基于Marquee.js插件实现的跑马灯效果示例
2017/01/25 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
2017/02/16 Javascript
原生js编写2048小游戏
2017/03/17 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
python中偏函数partial用法实例分析
2015/07/08 Python
Python 搭建Web站点之Web服务器与Web框架
2016/11/06 Python
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
python实现控制台打印的方法
2019/01/12 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
tensorflow 自定义损失函数示例代码
2020/02/05 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
德国户外装备、登山运动和攀岩商店:tapir store
2020/02/12 全球购物
大学生毕业自我评价范文分享
2013/11/07 职场文书
2014年公务员个人工作总结
2014/11/22 职场文书
外贸英文求职信范文
2015/03/19 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
利用For循环遍历Python字典的三种方法实例
2022/03/25 Python
win10搭建配置ftp服务器的方法
2022/08/05 Servers