v4l2 UVC 设置摄像头获取摄像头性能

Posted jmelody

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了v4l2 UVC 设置摄像头获取摄像头性能相关的知识,希望对你有一定的参考价值。

OpenCV 打开相机很简单,VideoCapture类可以解决大部分问题:

import cv2
#打开usbcamera
cap = cv2.VideoCapture(0)
#打开网络串流
cap = cv2.VideoCapture("rtsp://...")
#打开本地视频
cap = cv2.VideoCapture("video.avi")

实际上这是因为OpenCV的将底层视频库封装很完善,比如USB相机,在linux,打开一个USB camera大部分底层调用的是v4l2库,而v4l2库调用更加底层的uvc。

最近因为一个目标检测项目需要用到高清摄像头,而检测移动目标,在抓拍瞬间需要解决motion blur的问题。
运动模糊一般通过减少快门时间来解决。故需要设置相机参数。

由于担心OpenCV封装之后很多参数hard code了,所以直接用V4L2或UVC查看、设置摄像机的参数:

V4L2:

apt-get install v4l2-utils
v4l2-ctl --list-devices
v4l2-ctl -d /dev/video0 --list-ctrls

UVC:

apt-get install uvcdynctrl
uvcdynctrl -d video0 -c

参考:
https://www.kurokesu.com/main/2016/01/16/manual-usb-camera-settings-in-linux/
https://www.linuxquestions.org/questions/linux-software-2/camera-settings-in-linux-v4l2-or-uvc-drivers-4175525260/
https://docs.opencv.org/4.1.0/d0/da7/videoio_overview.html

以上是关于v4l2 UVC 设置摄像头获取摄像头性能的主要内容,如果未能解决你的问题,请参考以下文章

V4l2视频输出实现流程

V4L2学习流程

NanoPi NEO Air使用十五:使用V4L2驱动USB摄像头

NanoPi NEO Air使用十五:使用V4L2驱动USB摄像头

V4L2编程 视频采集

UVCAndroid,安卓UVC相机通用开发库(支持多预览和多摄像头)