2月 24

 
OpenCVでカメラから画像を取り込む場合,次の関数を用います.

> CVAPI(CvCapture*) cvCaptureFromCAM( int index );

このとき,indexの値を変えることで複数のカメラを選択できるはずなのですが,私のMacbookでは常にiSightが認識され,USBカメラを認識させることができませんでした.そこで,実際のソースの中で,

> CvCapture *cap = NULL;
> cap = cvCaptureFromCAM(0);
> cap = cvCaptureFromCAM(1);

のようにすることで,強引に認識されるようにしました.
一度目にiSightを認識し,二度目でUSBカメラを認識します.

> cvReleaseCapture(&cap);

と解放するまで,iSightの緑のランプはついたままになりますが,
実際にキャプチャするのはUSBカメラのみなので,(たぶん)計算の負担にはなりません.
もっとスマートな方法があればよいのですが...

preload preload preload