環境構築
wslカーネルのビルド
実行(Powershell ⇒ wsl)
PowerShell(管理者)
- 下記のコマンドで使用したいカメラの番号を取得(例:1-4)
$ usbipd wsl list
- 有効化
$ usbipd wsl attach --busid 1-4
- 無効化
$ usbipd wsl detach --busid 1-4
wsl
- usbカメラのデバイスファイルのパーミッションを変更
$ sudo chmod 777 /dev/video*
-
fswebcam
による動作確認
$ fswebcam -d /dev/video0 -r 640×480 test.jpg
-
v4l2-ctl
を使ったデバイスの確認 -
利用可能なカメラを列挙
$ v4l2-ctl --list-devices
- デバイスがサポートするフォーマットと フレームサイズとフレームレートの組み合わせを表示する
$ v4l2-ctl -d /dev/video0 --list-formats-ext
openCVで画像取得
-
qiita : @kakinaguru_zo(ラズパイで)USBカメラの映像をPythonのOpenCVで高速に表示する
-
usbカメラの場合、コーデックをMJPGにしないと動かなかった
import cv2
capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_FOURCC,cv2.VideoWriter_fourcc('M','J','P','G'))
if capture.isOpened() is False:
raise IOError
while(True):
try:
ret, frame = capture.read()
if ret is False:
raise IOError
cv2.imshow('frame',frame)
cv2.waitKey(1)
except KeyboardInterrupt:
# 終わるときは CTRL + C を押す
break
capture.release()
cv2.destroyAllWindows()