使用opencv-python如何打开USB或者笔记本前置摄像头

作者:BIT可达鸭 时间:2021-05-18 08:24:52 

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() #释放摄像头

来源:https://blog.csdn.net/weixin_44936889/article/details/103830451

标签:opencv,python,USB,笔记本,摄像头
0
投稿

猜你喜欢

  • Overflow Auto && Position Relative

    2009-09-03 12:02:00
  • Python四款GUI图形界面库介绍

    2023-02-20 20:12:04
  • vue基于input实现密码的显示与隐藏功能

    2024-05-09 15:28:20
  • 数据库中两张表之间的数据同步增加、删除与更新实现思路

    2024-01-21 18:50:24
  • mysql root密码的重设方法(亲测可用)

    2024-01-25 13:37:18
  • C++与mysql连接遇到的问题汇总

    2024-01-18 03:14:46
  • 一篇文章带你学习Python3的高级特性(1)

    2021-09-24 04:39:01
  • python开根号实例讲解

    2022-10-03 12:29:07
  • python numpy库之如何使用matpotlib库绘图

    2023-02-07 22:22:24
  • 表单相关特效整理

    2013-06-29 15:42:26
  • python 实现返回一个列表中出现次数最多的元素方法

    2023-01-04 14:36:54
  • PHP垃圾回收机制超详细介绍

    2023-11-21 23:11:44
  • Python 串口通信的实现

    2022-05-25 21:08:54
  • JavaScript基于ChatGPT API实现划词翻译浏览器脚本

    2024-04-22 12:52:27
  • js实现上下左右弹框划出效果

    2024-05-08 09:32:31
  • ajax实现无刷新上传文件功能

    2024-04-17 10:39:22
  • IDEA最新激活码永久激活教程附激活失败原因汇总

    2023-12-13 11:57:29
  • Django实现内容缓存实例方法

    2021-04-19 20:47:41
  • Python输出各行命令详解

    2021-12-03 05:29:18
  • Python seaborn数据可视化绘图(直方图,密度图,散点图)

    2023-01-11 11:35:08
  • asp之家 网络编程 m.aspxhome.com