使用opencv-python如何打开USB或者笔记本前置摄像头


Posted in Python onJune 21, 2022

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如何打开USB或者笔记本前置摄像头

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() #释放摄像头

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。


Tags in this post...

Python 相关文章推荐
Python中使用logging模块代替print(logging简明指南)
Jul 09 Python
python实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
python中字符串前面加r的作用
Jun 04 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
matlab中实现矩阵删除一行或一列的方法
Apr 04 Python
django初始化数据库的实例
May 27 Python
浅谈django2.0 ForeignKey参数的变化
Aug 06 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 Python
django-xadmin根据当前登录用户动态设置表单字段默认值方式
Mar 13 Python
Python内置函数locals和globals对比
Apr 28 Python
Python+DeOldify实现老照片上色功能
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
Jun 21 #Python
virtualenv隔离Python环境的问题解析
Jun 21 #Python
pd.drop_duplicates删除重复行的方法实现
Jun 16 #Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 #Python
pd.DataFrame中的几种索引变换的实现
Python实战实现爬取天气数据并完成可视化分析详解
You might like
PHP学习笔记之数组篇
2011/06/28 PHP
php无法连接mysql数据库的正确解决方法
2016/07/01 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
Jquery 滑入滑出效果实现代码
2010/03/27 Javascript
javascript使用百度地图api和html5特性获取浏览器位置
2014/01/10 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
Nodejs为什么选择javascript为载体语言
2015/01/13 NodeJs
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[41:12]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
python数据结构学习之实现线性表的顺序
2018/09/28 Python
python文件读写代码实例
2019/10/21 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
Anaconda详细安装步骤图文教程
2020/11/12 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
python中使用np.delete()的实例方法
2021/02/01 Python
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
校运会入场式解说词
2014/02/10 职场文书
银行委托书范本
2014/04/04 职场文书
《故乡》教学反思
2014/04/10 职场文书
义和团口号
2014/06/17 职场文书
公司委托书格式范文
2014/10/09 职场文书
2015年项目工作总结
2015/04/29 职场文书
信仰纪录片观后感
2015/06/08 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
导游词之丽江普济寺
2019/10/22 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
Redis字典实现、Hash键冲突及渐进式rehash详解
2021/09/04 Redis