2016-07-27 3 views
2

OpenCVはLinuxで8つ以上のWebカメラ用VideoCaptureを開くことができません。ここでは簡単な例:私のセットアップのためのOpenCVがLinux上の8つ以上のWebカメラからキャプチャできない

# "opencap.py" 
import cv2, sys 
dev = int(sys.argv[1]) 
cap = cv2.VideoCapture(dev) 
print "device %d: %s" %(dev, "success" if cap.isOpened() else "failure") 

(OpenCVの2.4.11は、Ubuntu 14.04)9つのウェブカメラ、と言うと、opencap.pyは最初の8つのウェブカメラ(0-7)のために、最後のために成功しました私は

> python opencap.py 8 
HIGHGUI ERROR: V4L: index 8 is not correct! 
device 8: failure 

取得1注:v4l2-ctl --list-devicesが正しく(は/ dev/video0、...は、/ dev/video8)9つのウェブカメラを示しています。

+0

私はGPUが8つのウェブカメラを扱うことができないと思います。特にウェブカメラの解像度が高い場合には特にそうです。 – Tes3awy

+0

私のアプリケーションは、_ショウジョウバエのリアルタイム追跡です。トラッカーは、現在のところ_CPU_のみを使用し、i7-4930Kの約12%(それぞれ320x240ピクセルと7.5fpsの8つのウェブカメラでトラッキング)を使用します。 –

+0

それから私は間違っています。 – Tes3awy

答えて

4

問題は、OpenCVのソースコード内の行によって引き起こされる:

#define MAX_CAMERAS 8 

は単にMAX_CAMERAS値を変更し、OpenCVの再構築は、問題を解決します。変更するファイルは、libv4lビルドの場合はmodules/highgui/src/cap_libv4l.cpp(line 260)、v4lビルドの場合はcap_v4l.cppです。 OpenCV 3.0の場合、ディレクトリはmodules/videoio/src /に変更されました(OpenCV 3.0の場合、この2つのビルドオプションの詳細については、answerを参照してください)。

注:通常、8カメラの制限に達する前に、ウェブカメラでUSB帯域幅の問題が発生します。例えば、answerを参照してください。

関連する問題