使用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(一)Python环境安装
Aug 20 Python
浅谈Python数据类型之间的转换
Jun 08 Python
python对DICOM图像的读取方法详解
Jul 17 Python
Python实现输出某区间范围内全部素数的方法
May 02 Python
django主动抛出403异常的方法详解
Jan 04 Python
python 通过SSHTunnelForwarder隧道连接redis的方法
Feb 19 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
学习python分支结构
May 17 Python
Python decorator拦截器代码实例解析
Apr 04 Python
python matplotlib实现将图例放在图外
Apr 17 Python
Python中glob库实现文件名的匹配
Jun 18 Python
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 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脚本加密专家php解密算法
2020/09/13 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
php日期操作技巧小结
2016/06/25 PHP
Windows下wamp php单元测试工具PHPUnit安装及生成日志文件配置方法
2018/05/28 PHP
[JS]点出统计器
2020/10/11 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
jQuery实现表头固定效果的实例代码
2013/05/24 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
jquery 使用简明教程
2014/03/05 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
Angular的$http与$location
2016/12/26 Javascript
vuejs绑定class和style样式
2017/04/11 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
Vue组件化开发思考
2018/02/02 Javascript
详解vue-cli 构建项目 vue-cli请求后台接口 vue-cli使用axios、sass、swiper
2018/05/28 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
2018/06/08 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
jquery无缝图片轮播组件封装
2020/11/25 jQuery
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
分析python切片原理和方法
2017/12/19 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
机修工岗位职责
2013/11/24 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
党员对照检查材料整改措施思想汇报
2014/09/26 职场文书
简单租房协议书
2014/10/21 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
python常见的占位符总结及用法
2021/07/02 Python