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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM