使用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获得图片base64编码示例
Jan 16 Python
python使用7z解压软件备份文件脚本分享
Feb 21 Python
Python中的取模运算方法
Nov 10 Python
python assert的用处示例详解
Apr 01 Python
从0开始的Python学习016异常
Apr 08 Python
对python while循环和双重循环的实例详解
Aug 23 Python
python使用多线程编写tcp客户端程序
Sep 02 Python
python手写均值滤波
Feb 19 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
Apr 12 Python
python某漫画app逆向
Mar 31 Python
Python机器学习三大件之一numpy
May 10 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实现的MySQL通用查询程序
2007/03/11 PHP
php时间戳转换的示例
2014/03/31 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
如何打开php的gd2库
2017/02/09 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
番茄的表单验证类代码修改版
2008/07/18 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
js判断是否为ie的方法小结
2014/01/13 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
Bootstrap表单布局样式源代码
2016/07/04 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
微信小程序--onShareAppMessage分享参数用处(页面分享)
2017/04/18 Javascript
详解node中创建服务进程
2017/05/09 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
django框架之cookie/session的使用示例(小结)
2018/10/15 Python
Python实现的删除重复文件或图片功能示例【去重】
2019/04/23 Python
tensorflow 实现打印pb模型的所有节点
2020/01/23 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
恶意软件的定义
2014/11/12 面试题
考试退步检讨书
2014/01/15 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
面试通知邮件
2015/04/20 职场文书
生鲜超市—未来中国最具有潜力零售业态
2019/08/02 职场文书
Django中session进行权限管理的使用
2021/07/09 Python