Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Problem reading multiple identical USB webcams

Hello,

So right now I am trying to write some code so that I can read from 6-8 webcams simultaneously. The eventual goal is to calibrate them and do some other image processing. I should also mention that I am using Visual Studio 2010 on my Windows 7 machine.

Right now I am using cvCreateCameraCapture which works splendidly for 1-2 cameras, and even works for 3 cameras when 2 of them are matching USB cameras and one of them is my built in laptop camera. The problem comes around when I start trying to read from 3 identical cameras.

i.e. here is my code until the line it breaks at: CvCapture* capture0; CvCapture* capture1; CvCapture* capture2;

capture0 = cvCreateCameraCapture(0);
capture1 = cvCreateCameraCapture(1);
capture2 = cvCreateCameraCapture(2);

assert( capture0 != NULL );
assert( capture1 != NULL );
assert( capture2 != NULL );

I was reading on some forum that there might be some issue with overloading the USB ports due to the fact that the webcam images are uncompressed. However, all of these posts referenced solutions using 2003 Windows libraries that are no longer accessible.

So my specific questions are:

  1. Is there a better function to be using than cvCreateCameraCapture?
  2. Is there a way to convert raw streaming uncompressed camera feeds to compressed, and how would one do this (all solutions I saw were for Linux)?

Thanks in advance for any assistance you might be able to provide