1 | initial version |
I think your issue of reading from 6 webcams is a hardware issue, actually. From my understanding, USB ports all typically go onto the same bus, and unless your computer has multiple buses for usb, the port will easily get clogged from 6 webcams streaming data. Getting two webcams to work can typically be done, but 3 or more would start getting hangly. You are likely getting 3 to work because I'm guessing that your laptop webcam has its own dedicated bus. A workaround (and also a way to test my theory) is to multiplex your cameras by turning the camera on, grabbing the data, then turning it off, then cycling between the other cameras.
To directly answer your questions.
I'm not familiar with the cvCreateCameraCapture, and searching for it in the documentation doesn't yield any results. The C interface function for video capture is cvCaptureFromCAM. To close the capture, you can use cvReleaseCapture. It's worth mentioning, that unless you're absolutely constrained to the C, you should consider using the C++ interface, as it is cleaner and more user-friendly.
Unfortunately, I don't know of an innate way for OpenCV to and I doubt there is one. I can't help you with this. That said, I think the problem is rooted at what I mentioned above.