使用opencv-python如何打开USB或者笔记本前置摄像头
作者:BIT可达鸭 发布时间:2021-05-18 08:24:52
标签:opencv,python,USB,笔记本,摄像头
opencv-python打开USB或笔记本前置摄像头
代码
其中video_index是摄像头编号,一般前置摄像头为0,USB摄像头为1或2.
import cv2
def catch_video(name='my_video', video_index=0):
# cv2.namedWindow(name)
cap = cv2.VideoCapture(video_index) # 创建摄像头识别类
if not cap.isOpened():
# 如果没有检测到摄像头,报错
raise Exception('Check if the camera is on.')
while cap.isOpened():
catch, frame = cap.read() # 读取每一帧图片
cv2.imshow(name, frame) # 在window上显示图片
key = cv2.waitKey(10)
if key & 0xFF == ord('q'):
# 按q退出
break
if cv2.getWindowProperty(name, cv2.WND_PROP_AUTOSIZE) < 1:
# 点x退出
break
# 释放摄像头
cap.release()
cv2.destroyAllWindows()
if __name__ == "__main__":
catch_video()
效果
Opencv-python摄像头录制视屏,拍照
Opencv-python摄像头录制视屏并保存
import cv2 # 导入opencv包
video = cv2.VideoCapture(0) # 打开摄像头
fourcc = cv2.VideoWriter_fourcc(*'XVID') # 视频存储的格式
fps = video.get(cv2.CAP_PROP_FPS) # 帧率
# 视频的宽高
size = (int(video.get(cv2.CAP_PROP_FRAME_WIDTH)), int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)))
out = cv2.VideoWriter('video.avi', fourcc, fps, size) # 视频存储
f=0
while out.isOpened():
ret, img = video.read() # 开始使用摄像头读数据,返回ret为true,img为读的图像
if ret is False: # ret为false则关闭
exit()
cv2.namedWindow('video', cv2.WINDOW_AUTOSIZE) # 创建一个名为video的窗口
cv2.imshow('video', img) # 将捕捉到的图像在video窗口显示
out.write(img) # 将捕捉到的图像存储
print(f ,' ' , 'fps: ',fps)
f+=1
# 按esc键退出程序
if cv2.waitKey(1) & 0xFF == 27:
video.release() # 关闭摄像头
break
拍照
#coding:utf-8
import cv2
cap = cv2.VideoCapture(0)#创建一个 VideoCapture 对象
flag = 1 #设置一个标志,用来输出视频信息
num = 1 #递增,用来保存文件名
while(cap.isOpened()):#循环读取每一帧
ret_flag, Vshow = cap.read() #返回两个参数,第一个是bool是否正常打开,第二个是照片数组,如果只设置一个则变成一个tumple包含bool和图片
cv2.imshow("Capture_Test",Vshow) #窗口显示,显示名为 Capture_Test
k = cv2.waitKey(1) & 0xFF #每帧数据延时 1ms,延时不能为 0,否则读取的结果会是静态帧
if k == ord('s'): #若检测到按键 ‘s',打印字符串
cv2.imwrite("/home/jie/图片/VOC/image/"+ str(num) + ".jpg", Vshow)
print(cap.get(3)); #得到长宽
print(cap.get(4));
print("success to save"+str(num)+".jpg")
print("-------------------------")
num += 1
elif k == ord('q'): #若检测到按键 ‘q',退出
break
cap.release() #释放摄像头
来源:https://blog.csdn.net/weixin_44936889/article/details/103830451
0
投稿
猜你喜欢
- 最近想做实时目标检测,需要用到python开启摄像头,我手上只有两个uvc免驱的摄像头,性能一般。利用python开启摄像头费了一番功夫,主
- 1、PHP 中如何正确统计中文字数?这个是困扰我很久的问题,PHP 中有很多函数可以计算字符串的长度,比如下面的例子,分别使用了
- 当where子句对某一列使用函数时,除非利用这个简单的技术强制索引,否则Oracle优化器不能在查询中使用索引。通常情况下,如果在WHERE
- Python配对函数zip()1、zip将列表、元组或其他序列的元素进行配对新建成一个元组构成的列表,它生成列表长度由最短的序列决定:#zi
- 先来了解下什么是数据库连接池数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vector对象中,一旦数据库连接建立后,不同的数
- 前言在服务部署在mysql上应该有好几个月了,因为现在的工作基本都在终端,因此很少登陆,今天要修改个东西,忽然发现我竟然已经彻底忘记了mys
- 一、何谓ASP缓存/为什么要缓存当你的web站点采用asp技术建立的初期,可能感觉到的是asp * 页技术带来的便利性,以及随意修改性、自如
- wed的打印方法具我自己懂得知道的有: 1、JQuery插件Jqprint实现 2、JQery打印插件PrintArea实现网页打印 3、C
- 原来看过MYSQL同步数据的实现,可是自己还没有动过手,今天没什么事就玩一玩,正好在旁边有另一台空电脑,都在同一个路由器下。哈哈,正好。 不
- 滑动窗口算法是一种可以高效解决数组问题的算法。它通过维护一个固定大小的滑动窗口,来快速计算某些数组的相关指标或者求解一些特定的问题。这种算法
- 前言CSRF全称Cross-site request forgery(跨站请求伪造),是一种网络的攻击方式,也被称为“One Click A
- 本文主要介绍了vue+elementui通用弹窗的实现(新增+编辑),分享给大家,具体如下:组件模板<el-dialog :title
- CTE(Common Table Expressions)是从SQL Server 2005以后版本才有的。指定的临时命名结果集,这些结果集
- date() 获取日期,格式:2004-2-28 time() 获取时间,格式:22:24:59 now() 获取日期和时间 格式: 200
- 我们平日办公时用得最多的软件是Execl、Word或WPS Office等,你的计算机中一定储存着大量的XLS、DOC、WPS文件吧!网页制
- 下面代码写的是js验证检查输入的字符是否是全角的函数:效果演示:<script> function i
- 本文实例讲述了php+mysqli实现批量替换数据库表前缀的方法。分享给大家供大家参考。具体分析如下:在php中有时我们要替换数据库中表前缀
- scipy.optimize函数使用简单使用scipy.optimize,训练逻辑回归损失函数,得到权值。scipy.optimize模块包
- 前面学习过Meanshift算法,在观察这个结果标记时,会发现有这样一个问题,如下图:汽车比较远时,用一个很小的窗口就可以把它框住,这是符合
- 写在最前最近在使用vue的时候,遇到一个需求,实现左右div可通过中间部分拖拽调整宽度,类似于这样这是我最终的实现效果还是老话,因为我不是专