使用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实现简单拆分PDF文件的方法
Jul 30 Python
Python中防止sql注入的方法详解
Feb 25 Python
对python中return和print的一些理解
Aug 18 Python
Java分治归并排序算法实例详解
Dec 12 Python
Python决策树分类算法学习
Dec 22 Python
浅谈python 导入模块和解决文件句柄找不到问题
Dec 15 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
使用Python在Windows下获取USB PID&amp;VID的方法
Jul 02 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
Python第三方包PrettyTable安装及用法解析
Jul 08 Python
Python使用struct处理二进制(pack和unpack用法)
Nov 12 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 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
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
php ci框架中加载css和js文件失败的解决方法
2014/03/03 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
JScript中的undefined和&quot;undefined&quot;的区别
2007/03/08 Javascript
xss文件页面内容读取(解决)
2010/11/28 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
JavaScript函数模式详解
2014/11/07 Javascript
简介JavaScript中的push()方法的使用
2015/06/09 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
js操作XML文件的实现方法兼容IE与FireFox
2016/06/25 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
JQuery validate 验证一个单独的表单元素实例
2017/02/17 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
在vscode中统一vue编码风格的方法
2018/02/22 Javascript
原生js调用json方法总结
2018/02/22 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
Python标准库urllib2的一些使用细节总结
2015/03/16 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
python实现二叉查找树实例代码
2018/02/08 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
pandas数据集的端到端处理
2019/02/18 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
python爬取抖音视频的实例分析
2021/01/19 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
招商经理岗位职责
2013/11/16 职场文书
单位在职证明范本
2014/01/09 职场文书
工作表扬信范文
2015/01/17 职场文书
Java 写一个简单的图书管理系统
2022/04/26 Java/Android
Go语言测试库testify使用学习
2022/07/23 Golang