A certain engineer "COMPLEX"

開発メモ その110 Debian with Raspberry Pi Desktop on VirtualBoxでWebCamがselect timeoutで使えない

Introduction


WebCamをVirtualBox上のゲストOS Debian with Raspberry Pi Desktop に接続してキャプチャをしても動かない件。
具体的には、


select timeout

と表示され何も動作しない。

Resolution


下記のページが参考になりました。

As who loves embedded system development and Image processing all together, I decided to run my Open CV programs on an embedded Linux systems. For my...

I have change the usb setting in VM ware settings and make it to support USB 3.0.
On the other hand I attached the camera to a USB 2.0 port and that works both of them

要するに、

  • USB 3.0をサポートするように仮想マシンの設定を変更
  • カメラをUSB 2.0ポートに接続

ということ。
仮想マシン設定のUSBから USB 3.0 (xHCI) コントローラーに変更すればOKです。

これでうまく動きます。
コードは下記です。


#!/usr/bin/env python
# -*- coding:utf-8 -*-
import cv2

c = cv2.VideoCapture(0)
c.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, 1200)
c.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, 800)
r, img = c.read()
cv2.imwrite('./capture.jpg', img)
c.release()

ただ、上のコードだと保存される画像が、960x544になっていました。

これは、指定したサイズがカメラでサポートしているサイズではなかったためです。
恐らく指定したサイズに何かしらのルールで近しいサイズに強制的に変更していると思われます。
テストしたカメラには、確かに960x544というサイズがありました。

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。