创建摄像头对象

使用opencv自带的VideoCapture()函数定义摄像头对象,其参数0表示第一个摄像头。

cap = cv2.VideoCapture(0)

这里可以设置视频播放的的大小,需要了解摄像头支持的视频大小。

cap.set(3, 960)
cap.set(4, 960)

当然也可以设置其他的参数(第一个参数就是图中的值),具体参考下图:

逐帧显示实现视频播放

在while循环中,利用摄像头对象的read()函数读取视频的某帧,并显示,然后等待1个单位时间,如果期间检测到了键盘输入q,则退出,即关闭窗口。

while(1):# get a frameret, frame = cap.read()# show a framecv2.imshow("capture", frame)if cv2.waitKey(1) & 0xFF == ord('q'):break

函数名:cap.read()

功 能:返回两个值先返回一个布尔值,如果视频读取正确,则为 True,如果错误,则为 False,也可用来判断是否到视频末尾 再返回一个值,为每一帧的图像,该值是一个三维矩阵。

通用接收方法为: ret,frame = cap.read(); 这样 ret 存储布尔值,frame 存储图像 若使用一个变量来接收两个值,如 frame = cap.read() 则 frame 为一个元组,原来使用 frame 处需更改为 frame[1]

返回值:R1:布尔值 R2:图像的三维矩阵

释放摄像头对象和窗口

调用release()释放摄像头,调用destroyAllWindows()关闭所有图像窗口。

cap.release()
cv2.destroyAllWindows() 

代码

import cv2
import numpy as np"""
函数名:cv2.VideoCapture()
功  能:通过摄像头捕获实时图像数据
返回值:有
参数一:摄像头代号,0为默认摄像头,笔记本内建摄像头一般为 0或者填写视频名称直接加载本地视频文件
"""
cap = cv2.VideoCapture(0)  # 创建一个 VideoCapture 对象"""
函数名:cap.set( propId , value )
功  能:设置视频参数,设置视频的宽高值和摄像头有关使用笔记本内置摄像头时只能设置为 1280*720 以及 640*480,哪怕设置值不同时都会自动校正过来,并且仍然返回 True
返回值:布尔值
参数一:需要设置的视频参数
参数二:设置的参数值
"""
cap.set(3, 960)
cap.set(4, 960)flag = 1  # 设置一个标志,用来输出视频信息
"""
函数名:cv2.isOpened()
功  能:返回一个布尔值( True / False ),检查是否初始化成功,成功返回 True
返回值:布尔值
"""
while(cap.isOpened()):  # 循环读取每一帧"""函数名:cap.read()功  能:返回两个值先返回一个布尔值,如果视频读取正确,则为 True,如果错误,则为 False,也可用来判断是否到视频末尾再返回一个值,为每一帧的图像,该值是一个三维矩阵通用接收方法为:ret,frame = cap.read();这样 ret 存储布尔值,frame 存储图像若使用一个变量来接收两个值,如frame = cap.read()则 frame 为一个元组,原来使用 frame 处需更改为 frame[1]返回值:R1:布尔值R2:图像的三维矩阵"""ret, frame = cap.read()# gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# cv2.imshow("Gray", gray)cv2.imshow("Capture_Test", frame)  # 窗口显示,显示名为 Capture_Testk = cv2.waitKey(1) & 0xFF  # 每帧数据延时 1ms,延时不能为 0,否则读取的结果会是静态帧if k == ord('s'):  # 若检测到按键 ‘s’,打印字符串"""函数名:cap.get( propId )功  能:查询视频的参数返回值:无参数一:查询的视频参数,其中部分值可以使用 cap.set() 进行修改"""print(cap.get(3))print(cap.get(4))#保存一帧图片cv2.imwrite('1.jpg', frame)elif k == ord('q'):  # 若检测到按键 ‘q’,退出breakcap.release()  # 释放摄像头
cv2.destroyAllWindows()  # 删除建立的全部窗口

参考博客

https://www.cnblogs.com/li134655/p/8732390.html

https://blog.csdn.net/huanglu_thu13/article/details/52337013

python-opencv使用摄像头相关推荐

  1. python+opencv打开摄像头、拍摄指定次数的照片_python+openCV调用摄像头拍摄和处理图片的实现...

    在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...

  2. python opencv打开摄像头,截图保存

    python opencv打开摄像头,截图保存,学习结果如下: 使用python打开摄像头 import cv2 cap = cv2.VideoCapture(0) #设置摄像头 0是默认的摄像头 如 ...

  3. python opencv调用摄像头并追踪移动物体,浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估...

    使用摄像头追踪人脸由于血液流动引起的面部色素的微小变化实现实时脉搏评估. 效果如下(演示视频): 由于这是通过比较面部色素的变化评估脉搏所以光线.人体移动.不同角度.不同电脑摄像头等因素均会影响评估效 ...

  4. Python+opencv调用摄像头实现拍照并保存

    Python+opencv调用摄像头实现拍照并保存 安装 OpenCV库 详细源码 注意事项 安装 OpenCV库 pip install opencv-python 详细源码 调用外接摄像头实现拍照 ...

  5. python+openCV调用摄像头拍摄和处理图片

    在深度学习过程中想做手势识别相关应用,需要大量采集手势图片进行训练,作为一个懒人当然希望飞快的连续采集图片并且采集到的图片就已经被处理成统一格式的啦..于是使用python+openCV调用摄像头,在 ...

  6. python opencv设置摄像头分辨率以及各个参数的方法

    摘自:http://www.cppcns.com/jiaoben/python/224278.html python opencv设置摄像头分辨率以及各个参数的方法 发布时间: 2019-04-21 ...

  7. python opencv 调用摄像头失败问题的解决 Windows

    省流: 内含 Python Opencv 双目相机拍照代码(手动 or 自动),可自取: 如果你的 cv2.VideoCapture() 函数卡住但不报错,打开 Windows "相机&qu ...

  8. python opencv打开摄像头

    opencv打开摄像头 import cv2 cap = cv2.VideoCapture(0) while True:ret, frame = cap.read()frame = cv2.flip( ...

  9. python opencv 保存摄像头视频,以及fourc编码的介绍

    之所以写这篇博客,主要还是想介绍一下fourcc编码 1 读取摄像头 1.1 正常读取一个摄像头 1.读取摄像头 只读取摄像头 没有做其他操作 import cv2# 获取摄像头 0代表摄像头索引 c ...

  10. python+ opencv实现摄像头实时人脸识别并实现汉字标框

    opencv的puttxt()函数不能汉字输出,这也是困惑好多人都问题,经过几天的查资料,改代码终于成功实现opencv汉字输出. 第一种方法是 是通过写一段代码,能够转码,封装一下再调用,从而实现汉 ...

最新文章

  1. 华人博士提出原型对比学习,非监督学习效果远超MoCo和SimCLR
  2. linux查看服务依赖关系,服务管理(1)
  3. IOS开发基础知识--碎片32
  4. 面试题: 看下面的程序是否有问题 如果有问题请指出 并说明 (关于数据类型-隐性转换的小陷阱)
  5. Linux系统挂起进程的几种方法
  6. redis3.0伪集群安装步骤
  7. 虚拟化部署之Windows 7中远程管理Hyper-V
  8. ++i和i++哪个效率更高
  9. 又到年关,年终奖你能拿多少?
  10. Process相关函数
  11. 微信小程序开发:微信小程序里面集成百度地图的步骤
  12. 利用灰色关联法确定指标权重
  13. selenium爬虫模拟登录PayPal
  14. uint8_t和char的相互转换
  15. 使用google的jib, 发布Docker镜像到阿里云
  16. zstuoj 4246 萌新吃果果
  17. 零基础学习软件测试难不难?
  18. 谈谈对Spring IOC(控制反转)的理解
  19. dc_shell常用命令
  20. python爬虫-爬取当当网书籍信息存到Excel中

热门文章

  1. 应用层协议之CCNA必备知识点精髓
  2. php开发面试题---1、php常用面试题一(PHP有哪些特性)
  3. Ubuntu16.04开机引导缺失Win10
  4. 【bzoj5099】[POI2018]Pionek 双指针法
  5. iOS平台软件开发工具(一)-新建的工程使用CocoaPods工具集成第三方框架
  6. c语言的详细编译过程
  7. javascript获取Select下拉框的值
  8. 上线随想之2011-03-30
  9. Spring Boot开发
  10. php采集绕过cloudflare,关于pyspider绕过CloudFlare验证的问题