使用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计算时间差的方法
May 20 Python
python实现在控制台输入密码不显示的方法
Jul 02 Python
Python读取图片属性信息的实现方法
Sep 11 Python
老生常谈Python序列化和反序列化
Jun 28 Python
详解Python中的type和object
Aug 15 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
一百行python代码将图片转成字符画
Feb 19 Python
python中pip的使用和修改下载源的方法
Jul 08 Python
django框架F&amp;Q 聚合与分组操作示例
Dec 12 Python
Python API len函数操作过程解析
Mar 05 Python
Python try except异常捕获机制原理解析
Apr 18 Python
利用python 下载bilibili视频
Nov 13 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 组件化编程技巧
2009/06/06 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
laravel中短信发送验证码的实现方法
2018/04/25 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
js使用心得分享
2015/01/13 Javascript
跟我学习javascript解决异步编程异常方案
2015/11/23 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
基于jQuery实现页面搜索功能
2020/03/26 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
Bootstrap表单简单实现代码
2017/03/06 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
利用 python 对目录下的文件进行过滤删除
2017/12/27 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
python中如何使用insert函数
2020/01/09 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
欧舒丹比利时官网:L’OCCITANE比利时
2017/04/25 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
党课培训主持词
2014/04/01 职场文书
工程售后服务方案
2014/06/08 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
2014年社区居委会主任重阳节讲话稿
2014/09/25 职场文书
八项规定整改方案
2014/10/01 职场文书
2015年党小组工作总结
2015/05/26 职场文书
离婚财产分割协议书
2015/08/11 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
Python中super().__init__()测试以及理解
2021/12/06 Python