3

OpenCV を使用して Python プログラムを作成していますが、v4l2 カメラから画像をキャプチャできません。

v4l2 を使用している PS2 EyeToy と Droidcam (Android 仮想 Web カメラ) の両方で試しましたが、いずれも機能しません: cv.CaptureFromCAM(0) は None のみを返します。

他のプログラムで両方のウェブカメラを使用できます (VLC と Kamerka を試しました)。

OpenCV は v4l2 ではなく v4l のみをサポートしていると思います。

どうすればこの問題を解決できますか? v4l2->v4l コンバーターは存在しますか?

編集: cv.CaptureFromFile は ffmpeg を使用してビデオ ファイルをデコードすることを読みました。フォーマットを手動で指定することは可能ですか? ffmpeg のデマルチプレクサを使用できますvideo4linux2か?

4

3 に答える 3

3

OpenCV は V4L2をサポートしていますが、デフォルトではサポートされていない可能性があります。

OpenCV のソース コードをダウンロードし、v4l2 ヘッダーとライブラリがシステムにインストールされていることを確認します

で OpenCV を構成した後cmake、出力を確認します。

--   Video I/O:
--     DC1394 1.x:                  NO
--     DC1394 2.x:                  YES (ver 2.2.0)
--     FFMPEG:                      YES
--       codec:                     YES (ver Unknown)
--       format:                    YES (ver Unknown)
--       util:                      YES (ver Unknown)
--       swscale:                   YES (ver Unknown)
--       gentoo-style:              YES
--     OpenNI:                      NO
--     OpenNI PrimeSensor Modules:  NO
--     PvAPI:                       NO
--     GigEVisionSDK:               NO
--     QuickTime:                   NO
--     QTKit:                       YES
--     V4L/V4L2:                    NO/NO

上記の出力に気付いた場合、必要な開発ファイルがインストールされていないため、私のシステムでは OpenCV が V4L/V4L2 をサポートしてビルドされません。

于 2013-03-15T20:01:26.200 に答える