python3调用USB高帧率摄像头

1.v4l2调用高帧率摄像头

python2.x版本的v4l2capture很简单,源码在这里
执行:./setup.py build
执行:sudo ./setup.py install

python3.x版本的v4l2capture,需要将.c里面的#include <Python.h>改成当前python环境下include里面的Python.h,再
执行:./setup.py build
执行:sudo ./setup.py install

python3 的pip install v4l2capture方式是不行的,python2没试过
我的python环境是anaconda的,将生成的v4l2capture.o放在site-packages下就可以import v4l2capture了,调用代码在源码里面都有了。

2.opencv调用

import cv2
import time

cap = cv2.VideoCapture(1)
cap.set(cv2.CAP_PROP_FPS,100)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)

cap.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter.fourcc('M', 'J', 'P', 'G'))

while True:
    start = time.time()
    ret, frame = cap.read()
    if ret:
        cv2.imshow("test", frame)
        print(time.time()-start)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

cap.set(cv2.CAP_PROP_FPS,100)这句有的时候并不起作用,根据 stackoverflow所说,实际上用的还是v4l2。
下面给出常见的一些opencv capture参数:

VideoCapture capture(0); 设置摄像头参数 不要随意修改

capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);//宽度

capture.set(CV_CAP_PROP_FRAME_HEIGHT, 960);//高度

capture.set(CV_CAP_PROP_FPS, 30);//帧率 帧/秒

capture.set(CV_CAP_PROP_BRIGHTNESS, 1);//亮度

capture.set(CV_CAP_PROP_CONTRAST,40);//对比度 40

capture.set(CV_CAP_PROP_SATURATION, 50);//饱和度 50

capture.set(CV_CAP_PROP_HUE, 50);//色调 50

capture.set(CV_CAP_PROP_EXPOSURE, 50);//曝光 50 获取摄像头参数

得到摄像头的参数

capture.get(CV_CAP_PROP_FRAME_WIDTH);

capture.get(CV_CAP_PROP_FRAME_HEIGHT);

capture.get(CV_CAP_PROP_FPS);

capture.get(CV_CAP_PROP_BRIGHTNESS);

capture.get(CV_CAP_PROP_CONTRAST);

capture.get(CV_CAP_PROP_SATURATION);

capture.get(CV_CAP_PROP_HUE);

capture.get(CV_CAP_PROP_EXPOSURE); 获取视频参数:

capture.get(CV_CAP_PROP_FRAME_COUNT);//视频帧数

C++版本

可以参考这篇文章

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python中,可以使用OpenCV库来调用USB摄像头。可以通过以下几个步骤来实现: 1. 首先,确保已安装OpenCV库。可以使用pip命令进行安装,例如:`pip install opencv-python` 2. 导入必要的库文件和模块: ```python import cv2 ``` 3. 创建一个VideoCapture对象,以连接到USB摄像头: ```python cap = cv2.VideoCapture(0) ``` 4. 使用while循环不断读取和显示摄像头捕获的图像: ```python while True: ret, frame = cap.read() cv2.imshow('USB Camera', frame) if cv2.waitKey(1) & 0xFF == ord('q'): break ``` 5. 最后,释放摄像头资源并关闭窗口: ```python cap.release() cv2.destroyAllWindows() ``` 这样,你就可以使用Python调用USB摄像头并显示图像了。请注意,上述代码中的`0`表示连接到默认的第一个USB摄像头。如果有多个摄像头,你可以使用不同的索引来选择所需的摄像头。同时,你还可以对图像进行各种处理和分析,以满足你的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python+Opencv 调用USB摄像头(一)](https://blog.csdn.net/Programmer_ch/article/details/89057129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值