使用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 相关文章推荐
详细介绍Ruby中的正则表达式
Apr 10 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
python实现随机梯度下降(SGD)
Mar 24 Python
python分批定量读取文件内容,输出到不同文件中的方法
Dec 08 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
在pycharm下设置自己的个性模版方法
Jul 15 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
Aug 28 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
python类共享变量操作
Sep 03 Python
Python下使用Trackbar实现绘图板
Oct 27 Python
Django-simple-captcha验证码包使用方法详解
Nov 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
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
PHP编码转换
2012/11/05 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
php实现encode64编码类实例
2015/03/24 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
php+ajax实现商品对比功能示例
2019/04/13 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
2019/08/14 PHP
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
js实现放大镜特效
2017/05/18 Javascript
vue router+vuex实现首页登录验证判断逻辑
2018/05/17 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
express框架下使用session的方法
2019/07/31 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
[27:08]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第二场 11.21
2020/11/23 DOTA
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
Django怎么在admin后台注册数据库表
2020/11/14 Python
Python数据分析库pandas高级接口dt的使用详解
2020/12/11 Python
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
商务邀请函范文
2014/01/14 职场文书
九年级语文教学反思
2014/02/04 职场文书
初中英语课后反思
2014/04/25 职场文书
企业晚会策划方案
2014/05/29 职场文书
企业年度评优方案
2014/06/02 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
道歉的话语大全
2015/05/12 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS