GUST NOTCH? DIARY

OpenCV で複数カメラを使う

以前は OpenCV 単体で複数カメラを使おうとすると不具合があって、そのためには VideoInput ライブラリを使うのが常套手段だったんだけど、VideoInput ライブラリが OpenCV に組み込まれるという話があった。バージョン 2.1 にしたので確かめてみた。
まずはソースを見てみたら、cvcap_dshow.cpp で、

#ifdef HAVE_VIDEOINPUT
#include "videoinput.h"

となっていたので、組み込まれているっぽい。3rdparty\lib の下に videoInput.lib がありました。
実際に試してみたら、こんなコードできちんと動いた。


#include
#include
 
int main( int argc, char *argv[] )
{
 CvCapture *capture1=NULL, *capture2=NULL;
 IplImage *frame1 = NULL, *frame2 = NULL;
 int c;
 
 capture1 = cvCreateCameraCapture( 0 );
 capture2 = cvCreateCameraCapture( 1 );
 
 cvNamedWindow ("1stCam", CV_WINDOW_AUTOSIZE);
 cvNamedWindow ("2ndCam", CV_WINDOW_AUTOSIZE);
 
 while( 1 ){
  frame1 = cvQueryFrame( capture1 );
  frame2 = cvQueryFrame( capture2 );
  cvShowImage( "1stCam", frame1 );
  cvShowImage( "2ndCam", frame2 );
 
  c = cvWaitKey(2);
  if( c == '\x1b' ){
   break;
  }
 }
 
 cvReleaseCapture (&capture1);
 cvReleaseCapture (&capture2);
 cvDestroyWindow ("1stCam");
 cvDestroyWindow ("2ndCam");
 
 return 0;
}

cvCreateCameraCapture() に番号渡せば問題ないみたい。
何台のカメラまでいけるんだろ?