使用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实现发送和获取手机短信验证码
Jan 15 Python
Python的collections模块中的OrderedDict有序字典
Jul 07 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
python中copy()与deepcopy()的区别小结
Aug 03 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
用Python逐行分析文件方法
Jan 28 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
Django通过dwebsocket实现websocket的例子
Nov 15 Python
为什么称python为胶水语言
Jun 16 Python
python 制作python包,封装成可用模块教程
Jul 13 Python
python index() 与 rindex() 方法的使用示例详解
Dec 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
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
使用php 获取时间今天明天昨天时间戳的详解
2013/06/20 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
2014/08/20 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
php中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
php上传大文件设置方法
2016/04/14 PHP
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
innerText 使用示例
2014/01/23 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
微信小程序 判断手机号的实现代码
2017/04/19 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
[02:31]《DAC最前线》之选手酒店现场花絮
2015/01/30 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
pyramid配置session的方法教程
2013/11/27 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
浅析使用Python操作文件
2017/07/31 Python
Python读取properties配置文件操作示例
2018/03/29 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python 运行.py文件和交互式运行代码的区别详解
2019/07/02 Python
Python简单处理坐标排序问题示例
2019/07/11 Python
WxPython实现无边框界面
2019/11/18 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
Python之字典添加元素的几种方法
2020/09/30 Python
CSS书写规范、顺序和命名规则
2014/03/06 HTML / CSS
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
《青山不老》教学反思
2016/02/22 职场文书
2019生态环境保护倡议书!
2019/07/03 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
总结几个非常实用的Python库
2021/06/26 Python