Python-opencv摄像头图像捕获
实例一 (灰色调度)
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
import cv2 as cv
import numpy as np
capture = cv.VideoCapture(0) # 创建一个VideoCapture对象
while(True):
ret, frame = capture.read() # 一帧一帧读取视频
gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY) # 对每一帧做处理,设置为灰度图
cv.imshow('frame', gray) # 显示结果
if cv.waitKey(1) &0xFF == ord('q'): # 按q停止
break
capture.release() # 释放cap,销毁窗口
cv.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_Test
k = 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’,退出
break
cap.release() # 释放摄像头
cv2.destroyAllWindows() # 删除建立的全部窗口
实例三 (图像抓取,保存为图片)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from VideoCapture import Device
import time
#最多保存5张抓取到的图片,超过5张,覆盖最早的那一张,依次循环
MAX_PIC_NUM = 5
#抓取频率,30秒抓取一次
SLEEP_TIME_LONG = 30
#初始化摄像头
cam = Device(devnum=0, showVideoWindow=0)
iNum = 0
while True:
#抓图
cam.saveSnapshot(str(iNum)+ '.jpg', timestamp=3, boldfont=1, quality=75)
#休眠一下,等待一分钟
time.sleep(SLEEP_TIME_LONG)
#超过5张,则覆盖之前的,否则,硬盘很快就会写满
if iNum == MAX_PIC_NUM:
iNum = 0
else:
iNum += 1
实例四 (人脸识别,模糊)
Python-opencv摄像头图像捕获的更多相关文章
- 使用Python+OpenCV进行图像模板匹配(Match Template)
2017年9月22日 BY 蓝鲸 LEAVE A COMMENT 本篇文章介绍使用Python和OpenCV对图像进行模板匹配和识别.模板匹配是在图像中寻找和识别模板的一种简单的方法.以下是具体的步骤 ...
- python+opencv实现图像缩放
x, y = img_.shape[0:2] img_ = cv2.resize(img_, (int(y/2), int(x/2))) 实现图像长宽缩小为原来的一半
- python+opencv实现图像自适应阈值的均衡化
内容涉及:列表遍历,图像均衡化,图像通道分离与合并 import cv2 import numpy as np import os for path in open("org_junheng ...
- python+opencv检测图像清晰度
直接上代码,list_jian.txt为待检测图像路径列表 import cv2 import numpy as np import os for path in open("list_ji ...
- python opencv:图像的一些属性与操作
img = cv.imread(xxx) # 常用的有以下属性 type(img) # img的数据类型 img.shape # img的结构 img.size # img的大小 img.dtype ...
- Python+opencv打开修图的正确方式get
先逼逼两句: 图像是 Web 应用中除文字外最普遍的媒体格式. 流行的 Web 静态图片有 JPEG.PNG.ICO.BMP 等.动态图片主要是 GIF 格式.为了节省图片传输流量,大型互联网公司还会 ...
- 使用FFmpeg捕获一帧摄像头图像
最近在研究FFmpeg,比较惊讶的是网上一大堆资料都是在说如何从已有的视频中截取一帧图像,却很少说到如何直接从摄像头中捕获一帧图像,其实我一直有个疑问,就是在Linux下,大家是用什么库来采集摄像头的 ...
- 在python3下使用OpenCV 抓取摄像头图像并实时显示3色直方图
以下代码为在Python3环境下利用OpenCV 抓取摄像头的实时图像, 通过OpenCV的 calHist函数计算直方图, 并显示在3个不同窗口中. import cv2 import numpy ...
- 在python3下使用OpenCV 抓取摄像头图像提取蓝色
工作中需要对摄像头进行调试, Python平台大大提高调试效率. 从网找到段代码, 可以从摄像头图像中抠出蓝色. import cv2 import numpy as np cap = cv2.Vi ...
随机推荐
- 最长公共子序列&最长公共子串
首先区别最长公共子串和最长公共子序列 LCS(计算机科学算法:最长公共子序列)_百度百科 最长公共子串,这个子串要求在原字符串中是连续的.而最长公共子序列则并不要求连续. 最长公共子序列: http ...
- elasticsearch5.5安装
beat -------- kafka -------- logstash---------------elasticsearch--------------kibana beat配置文件 [roo ...
- c++ 堆和栈以及区别
c++中内存分成5个区:堆.栈.自由存储区.全局\静态存储区.常量存储区 栈是一种连续存储的数据结构,具有先进后出的性质.堆是一种非连续的树形存储数据结构,每个节点有一个值,整棵树是经过排序的,特点是 ...
- 看完了红米5 Plus发布会,我觉得魅蓝Note6降价降多了
没有意外,红米5 Plus在今天下午已经发布.这款以全面屏为卖点的手机机,将红米最低端的一个系列加价到了999元起步——这一切只是因为一个全面屏而已. 知道了红米5 Plus的售价之后,李楠大呼“降多 ...
- 初识Qt文字绘制
1.新建一个Qt Gui应用,项目名称为myDraw,基类选择为QMainWindow,类名设置为MainWindow. 2.在mainwindow.h头文件中添加void paintEvent(QP ...
- PAT乙级1029
1029 旧键盘 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及实际被输入的文字,请你列出肯定坏掉的那些键. 输入格式: 输入在 ...
- SSH免密码登录远程linux服务器
Linux下实现SSH无密码验证登陆 ssh配置 主机A:10.0.5.199 主机B:10.0.5.198 需要配置主机A无密码登录主机A,主机B 先确保所有主机的防火墙处于关闭状态. 在主机A上执 ...
- 404 Note Found 队-Beta1
目录 组员情况 组员1(组长):胡绪佩 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内最新成果 团 ...
- 认识BPM
什么是BPM BPM,即业务流程管理,是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如EMBA.MBA等均将BPM包含在内. BPM能干什 ...
- Fiddler设置代理后,iphone手机无法访问网络的全面解决办法
好久不抓手机包,都有些忘记了,电脑上软件都在,原本是Fiddler4,现在已自动升级到V5. 入主题吧,首先Fiddler设置好代理,然后手机安装证书好了,设置手机代理,结果iphone无法访问网络, ...