Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Piece of advice : use <a href="http://muonics.net/school/spring05/videoInput/" rel="nofollow noreferrer">VideoInput</a> instead of CvCapture (CvCapture is a part of highgui a library that is not intended for production use, but just for quick testing). Yes the VideoInput homepage looks strange, but the library is quite worthwhile. </p> <p>Here is a quick sample for the usage of VideoInput (extracted from the VideoInput.h file): </p> <pre><code>//create a videoInput object videoInput VI; //Prints out a list of available devices and returns num of devices found int numDevices = VI.listDevices(); int device1 = 0; //this could be any deviceID that shows up in listDevices int device2 = 1; //this could be any deviceID that shows up in listDevices //if you want to capture at a different frame rate (default is 30) //specify it here, you are not guaranteed to get this fps though. //VI.setIdealFramerate(dev, 60); //setup the first device - there are a number of options: VI.setupDevice(device1); //setup the first device with the default settings //VI.setupDevice(device1, VI_COMPOSITE); //or setup device with specific connection type //VI.setupDevice(device1, 320, 240); //or setup device with specified video size //VI.setupDevice(device1, 320, 240, VI_COMPOSITE); //or setup device with video size and connection type //VI.setFormat(device1, VI_NTSC_M); //if your card doesn't remember what format it should be //call this with the appropriate format listed above //NOTE: must be called after setupDevice! //optionally setup a second (or third, fourth ...) device - same options as above VI.setupDevice(device2); //As requested width and height can not always be accomodated //make sure to check the size once the device is setup int width = VI.getWidth(device1); int height = VI.getHeight(device1); int size = VI.getSize(device1); unsigned char * yourBuffer1 = new unsigned char[size]; unsigned char * yourBuffer2 = new unsigned char[size]; //to get the data from the device first check if the data is new if(VI.isFrameNew(device1)){ VI.getPixels(device1, yourBuffer1, false, false); //fills pixels as a BGR (for openCV) unsigned char array - no flipping VI.getPixels(device1, yourBuffer2, true, true); //fills pixels as a RGB (for openGL) unsigned char array - flipping! } //same applies to device2 etc //to get a settings dialog for the device VI.showSettingsWindow(device1); //Shut down devices properly VI.stopDevice(device1); VI.stopDevice(device2); </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload