pythonlinuxopencvhardware

Listing available devices in python-opencv


I have two webcams attached to my laptop (one built in), both of which work. (If I use Cheese, a webcam thingy that comes with Ubuntu, it uses the external one). If I use

cap = cv.CreateCameraCapture(0)

or

cap = cv.CreateCameraCapture(-1)

I get my built in webcam. If I use

cap = cv.CreateCameraCapture(1)

It doesn't work and the object `cap' displays as:

<Capture (nil)>

Same with CaptureFromCAM. So I'd like to know what openCV is trying to do and why it doesn't seem to know about the second camera. There should be two devices available (there are /dev/videoN entries for both).


Solution

  • This is a general problem of the OpenCV, as you can see below. It seems that only the builtin, or the first USB cam (only if you do not have a buildin cam) works in OpenCV:

    How to use a camera with OpenCV

    Cannot access usb webcam through OpenCV, Cygwin

    OpenCV capture from USB not iSight (OSX)

    Currently, there is no way to extract the number of cameras, as listed in this feature request:

    https://code.ros.org/trac/opencv/ticket/935