利用opencv从USB摄像头获取图片 获得摄像头编号
本文轉自博客園-Arkenstone
由于opencv自帶的VideoCapture函數直接從usb攝像頭獲取視頻數據,所以用這個來作為實時的圖像來源用于實體檢測識別是很方便的。
安裝的步驟可以按照之前這個文章操作。如果在測試的時候:
返回了False,很有可能是在安裝的時候cmake的配置沒有設置后,可以make uninstall之后重新cmake。
安裝usb攝像頭驅動(這個一般都不需要)
如果系統沒有預裝usb攝像頭的驅動,那么根據所用的攝像頭安裝相應的驅動即可。安裝完之后可以用lsusb或者v4l2-ctl --list-device`命令查看當前鏈接的usb設備來確認。這里我們使用的攝像頭是羅技c930e。
設置攝像頭參數
設置可以在腳本中用opencv或者在命令行用v4l2-ctl命令設置:
1). opencv
set camera properties
cam.set(4, 1280) # img width,第一個數字對應上述屬性 cam.set(5, 640) # img height cam.set(6, 24) # video FPS2). v4l2-ctl
首先用v4l2-ctl --list-device確定usb攝像頭的device編號(一般為/dev/video0),然后查看該設備可以設置的參數:
羅技c930e攝像頭的參數如下:
brightness (int) : min=0 max=255 step=1 default=-8193 value=128contrast (int) : min=0 max=255 step=1 default=57343 value=128saturation (int) : min=0 max=255 step=1 default=57343 value=128white_balance_temperature_auto (bool) : default=1 value=1gain (int) : min=0 max=255 step=1 default=57343 value=0power_line_frequency (menu) : min=0 max=2 default=2 value=2white_balance_temperature (int) : min=2000 max=6500 step=1 default=57343 value=4000 flags=inactivesharpness (int) : min=0 max=255 step=1 default=57343 value=128backlight_compensation (int) : min=0 max=1 step=1 default=57343 value=0exposure_auto (menu) : min=0 max=3 default=0 value=3exposure_absolute (int) : min=3 max=2047 step=1 default=250 value=250 flags=inactiveexposure_auto_priority (bool) : default=0 value=1pan_absolute (int) : min=-36000 max=36000 step=3600 default=0 value=0tilt_absolute (int) : min=-36000 max=36000 step=3600 default=0 value=0focus_absolute (int) : min=0 max=250 step=5 default=8189 value=0 flags=inactivefocus_auto (bool) : default=1 value=1zoom_absolute (int) : min=100 max=500 step=1 default=57343 value=100最后可以可以設置參數了:
v4l2-ctl --set-ctrl=zoom_absolute=200 #放大兩倍
4. opencv獲取圖片
這個就很簡單了,這里就說明下用waitKey參數來用鍵盤輸入控制視頻流:
PS:waitKey(1) & 0xFF獲取當前按的鍵的ascii碼,如果要用其他鍵來控制,用相應鍵的ascii碼替換即可。(ascii碼查詢)。
參考
http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture
http://stackoverflow.com/questions/11420748/setting-camera-parameters-in-opencv-python
http://kurokesu.com/main/2016/01/16/manual-usb-camera-settings-in-linux/
http://stackoverflow.com/questions/34588464/python-how-to-capture-image-from-webcam-on-click-using-opencv
http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00000520.html
總結
以上是生活随笔為你收集整理的利用opencv从USB摄像头获取图片 获得摄像头编号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面部皮肤200种问题_颧骨内推真那么吓人
- 下一篇: 上班聊天,摸鱼神器,手写一款即时通讯工具