使用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的Django框架中simple-todo工具的简单使用
May 30 Python
python 基础教程之Map使用方法
Jan 17 Python
Python新手入门最容易犯的错误总结
Apr 24 Python
python 划分数据集为训练集和测试集的方法
Dec 11 Python
详解python的argpare和click模块小结
Mar 31 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
对python while循环和双重循环的实例详解
Aug 23 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
keras多显卡训练方式
Jun 10 Python
如何用python实现一个HTTP连接池
Jan 14 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
Python OpenGL基本配置方式
May 20 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
thinkphp实现图片上传功能
2016/01/13 PHP
php生成mysql的数据字典
2016/07/07 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
jQuery 获取和设置select下拉框的值实现代码
2013/11/08 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
Javascript var变量删除原理及实现
2020/08/26 Javascript
Python的垃圾回收机制深入分析
2014/07/16 Python
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
pyinstaller打包opencv和numpy程序运行错误解决
2019/08/16 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
出国留学自荐信
2013/10/25 职场文书
工厂实习感言
2014/01/14 职场文书
开展批评与自我批评发言稿
2014/10/16 职场文书
2014年银行员工工作总结
2014/11/12 职场文书
迎新年主持词
2015/07/06 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers