要使用摄像头,需要使用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

摄像头捕捉到的图像:

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

通过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倍分辨率于原先的图像:

播放本地视频

跟打开摄像头一样,如果把摄像头的编号换成视频的路径就可以播放本地视频了。回想一下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 :

录制视频并保存

之前我们保存图片用的是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 基于opencv操作摄像头相关推荐

  1. python 视频人脸替换_Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...

  2. python视频人脸检测_Python基于OpenCV实现视频的人脸检测

    本文实例为大家分享了基于OpenCV实现视频的人脸检测具体代码,供大家参考,具体内容如下 前提条件 1.摄像头 2.已安装Python和OpenCV3 代码 import cv2 import sys ...

  3. python怎么建立画板_Python基于opencv实现的简单画板功能示例

    本文实例讲述了Python基于opencv实现的简单画板功能.分享给大家供大家参考,具体如下: import cv2 import numpy as np drawing = False # true ...

  4. python opencv 摄像头亮度_Python 下opencv 应用: 摄像头参数设置

    为了取得好的图片效果,我们需要设置摄像头的参数. 假如摄像流为 cap, 那么设置参数是cap.set(参数编号,参数) 获取参数值的函数是  cap.get(参数编号) 看一段摄像头参数设置读取的例 ...

  5. opencv 人脸识别_python基于openCV人脸识别18行代码实现

    人脸识别 一.安装 1.打开命令行,输入pip install numpy,安装numpy. 2.安装opencv. pip install opencv-python 二.实现 (1)获取人脸识别训 ...

  6. opencv 处理黑夜_Python基于OpenCV的固定位置半透明水印去除两种方案

    1. 基于 inpaint 方法(网上的方法,处理质量较低) 算法理论:基于Telea在2004年提出的基于快速行进的修复算法(FMM算法),先处理待修复区域边缘上的像素点,然后层层向内推进,直到修复 ...

  7. python打开摄像头获取图片_Python基于opencv调用摄像头获取个人图片的实现方法

    接触图像领域的应该对于opencv都不会感到陌生,这个应该算是功能十分强劲的一个算法库了,当然了,使用起来也是很方便的,之前使用Windows7的时候出现多该库难以安装成功的情况,现在这个问题就不存在 ...

  8. python鼠标绘图_python 基于opencv 实现一个鼠标绘图小程序

    需求 在画布上用鼠标画图,可以画圆或矩形,按m键在两种模式下切换.左键按下时开始画图,移动到哪儿画到哪儿,左键释放时结束画图. 实现思想 用鼠标画图:需要定义鼠标的回调函数mouse_event 画圆 ...

  9. python实现流媒体传输_基于OpenCV的网络实时视频流传输的实现

    很多小伙伴都不会在家里或者办公室安装网络摄像头或监视摄像头.但是有时,大家又希望能够随时随地观看视频直播. 大多数人会选择使用IP摄像机(Internet协议摄像机)而不是CCTV(闭路电视),因为它 ...

  10. opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...

    " 本项目是一个基于OpenCV开源库使用python语言程序实现人脸检测的项目,该项目将从[项目基础知识](即人脸识别的基本原理).[项目实践](人脸识别所需要的具体步骤及其python程 ...

最新文章

  1. 经常遇到的浏览器的兼容性有哪些?
  2. Python爬虫实战(1):爬取糗事百科段子
  3. 当深度学习遇上量化交易——公开信息篇
  4. LeetCode之Reverse String
  5. Lungo 保持 Mac 屏幕唤醒的方便工具
  6. 计算机科学与技术志愿意愿,高考志愿填报如何得高分
  7. 算数基本定理 + 例题
  8. kali免杀工具Veil Evasion
  9. 提取Windows锁屏壁纸最简单的方式
  10. 软件测试面试之逻辑篇(一)
  11. Redis 集群可用性测试
  12. 【Kibana】索引生命周期策略错误illegal_argument_exception: index.lifecycle.rollover_alias does not point to index
  13. MySQL utf8mb4字符集按中文拼音排序
  14. C语言之大端模式与小端模式
  15. sql 语言-单值函数single row functions
  16. 移动端网页禁止下拉刷新css
  17. JavaEE心得体会
  18. The reference to entity “XX“ must end with the ‘;‘ delimiter.
  19. Oracle实现按季度划分,并计数
  20. Java合并wav音频

热门文章

  1. 2022年小红书活跃用户画像报告:7大行业核心人群解析
  2. python图片转excel,Python代码,将图片转为了Excel
  3. 浅谈GRADS气象绘图软件的使用
  4. Win7扫雷的H5完整复刻实现(一) / js扫雷算法的初次鉴定与地图初始化实现
  5. Java入门 - 循环结构基础
  6. vs编译与停止调试时卡顿、无响应的问题
  7. Charles弱网测试
  8. spark 部署安装
  9. linux centeros 操作系统
  10. idea设置Maven本地仓库