使用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实现协同过滤的教程
Apr 08 Python
python实用代码片段收集贴
Jun 03 Python
深入理解python对json的操作总结
Jan 05 Python
用python实现简单EXCEL数据统计的实例
Jan 24 Python
Python语言描述最大连续子序列和
Dec 05 Python
python三方库之requests的快速上手
Mar 04 Python
图文详解python安装Scrapy框架步骤
May 20 Python
django数据库自动重连的方法实例
Jul 21 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
python文件操作seek()偏移量,读取指正到指定位置操作
Jul 05 Python
一文搞懂Python Sklearn库使用
Aug 23 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Apr 07 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实现随机生成易于记忆的密码
2015/06/19 PHP
十大使用PHP框架的理由
2015/09/26 PHP
两款万能的php分页类
2015/11/12 PHP
PHP中的数组处理函数实例总结
2016/01/09 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
用javascript来实现动画导航效果的代码
2007/12/16 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
JS中字符串trim()使用示例
2015/05/26 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
JQuery和HTML5 Canvas实现弹幕效果
2017/01/04 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
ES6关于Promise的用法详解
2018/05/07 Javascript
jQuery的Ajax接收java返回数据方法
2018/08/11 jQuery
webpack4 处理CSS的方法示例
2018/09/03 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
python生成器与迭代器详解
2019/01/01 Python
python 利用Pyinstaller打包Web项目
2020/10/23 Python
HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
2013/01/30 HTML / CSS
印度电子产品购物网站:Vijay Sales
2021/02/16 全球购物
公司行政经理岗位职责
2013/12/24 职场文书
信息工作经验交流材料
2014/05/28 职场文书
经营理念口号
2014/06/21 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电