使用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使用simplejson模块解析JSON的方法
Mar 24 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
Python 从相对路径下import的方法
Dec 04 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
Jan 08 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
基于python实现音乐播放器代码实例
Jul 01 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
利用python绘制中国地图(含省界、河流等)
Sep 21 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
php下检测字符串是否是utf8编码的代码
2008/06/28 PHP
PHP常用的小程序代码段
2015/11/14 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
Thinkphp5.0框架视图view的循环标签用法示例
2019/10/12 PHP
JavaScript对象创建及继承原理实例解剖
2013/02/28 Javascript
js中的前绑定和后绑定详解
2013/08/01 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
JS实现淘宝支付宝网站的控制台菜单效果
2015/09/28 Javascript
jQuery拖拽排序插件制作拖拽排序效果(附源码下载)
2016/02/23 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
Vue.js进行查询操作的实例详解
2017/08/25 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
vue的一个分页组件的示例代码
2017/12/25 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
获取layer.open弹出层的返回值方法
2018/08/20 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
vue中 数字相加为字串转化为数值的例子
2019/11/07 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
基于python编写的微博应用
2014/10/17 Python
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
2016/06/30 Python
python处理“
2019/06/10 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
香港卓悦化妆品官网:BONJOUR
2017/09/21 全球购物
四年大学生活的个人自我评价
2013/12/11 职场文书
岳麓书院导游词
2015/02/03 职场文书
文化大革命观后感
2015/06/17 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
python 实现图片特效处理
2022/04/03 Python
我的收音机情缘
2022/04/05 无线电