1

2 台の USB Web カメラ (Philips SPC 900NC) でライブ ビデオを撮りたいのですが、ラップトップでは同時に動作しないことがわかりました。2 つの USB Web カメラのいずれかが単独で動作するか、別の Web カメラ (最初はラップトップに取り付けられていた) で動作する可能性があります。

simulink ブロック 'ビデオ デバイスから' を使用すると、Matlab は '複数の VIDEOINPUT オブジェクトは同時に同じデバイスにアクセスできません' というエラー メッセージを表示しました。次に、コマンド「imaqhwinfo」でビデオ入力デバイスを確認しましたが、USB Philips Webcam の 1 つしか検出できませんでした。

それを知りたいのですが、

  1. この状況の理由は何ですか?ハードウェアの制限 (USB バス帯域幅) または matlab ビデオ オブジェクトが同じ複数のビデオ デバイスをサポートしていないためですか?

  2. これの解決策は何ですか?誰かが私にいくつかの提案をしてもらえますか?

4

1 に答える 1

-2

このリンクに興味があるかもしれません:

http://opencv.willowgarage.com/wiki/faq#How_to_use_2_cameras_.28multiple_cameras.29_with_cvCam_library

を含む:

まず、cvcam ライブラリを初期化し、次の方法でカムの数を取得します。

int ncams = cvcamGetCamerasCount( );    //returns the number of available cameras in the system

使用中のカメラを選択するダイアログを表示

int* out; int nselected = cvcamSelectCamera(&out);

選択したカムを取得して有効にします。

int cam1 = out[0];
int cam2 = out[1];

cvcamSetProperty(cam1, CVCAM_PROP_ENABLE, CVCAMTRUE);
cvcamSetProperty(cam1, CVCAM_PROP_RENDER, CVCAMTRUE);  //We'll render stream from this source
cvNamedWindow("Cam1", 1);
cvcamWindow MyWin1 = (cvcamWindow)cvGetWindowHandle("Cam1");
cvcamSetProperty(cam1, CVCAM_PROP_WINDOW, &MyWin1);   // Selects a window for  video rendering
//Same code for camera 2
cvcamSetProperty(cam2, CVCAM_PROP_ENABLE, CVCAMTRUE);
cvcamSetProperty(cam2, CVCAM_PROP_RENDER, CVCAMTRUE);
cvNamedWindow("Cam2", 1);
cvcamWindow MyWin2 = (cvcamWindow)cvGetWindowHandle("Cam2");
cvcamSetProperty(cam2, CVCAM_PROP_WINDOW, &MyWin1);

//If you want to open the property dialog for setting the video format parameters, uncomment this line
//cvcamGetProperty(cam1, CVCAM_VIDEOFORMAT, NULL);
//cvcamGetProperty(cam2, CVCAM_VIDEOFORMAT, NULL);

ステレオモードを有効にします (同時に動作する 2 台のカメラ)

cvcamSetProperty(cam1, CVCAM_STEREO_CALLBACK , stereocallback); //stereocallback is the function running to process every frames

cvcamInit();
cvcamStart();

//Your app is working
while (1)
{
     int key = cvWaitKey(5);
     if (key == 27) break;
}
cvcamStop( );
cvcamExit( );

上記の関数の外でステレオコールバック関数を定義します。

void stereocallback(IplImage* image1, IplImage* image2) {

//Process 2 images here
}
于 2012-06-20T21:41:23.977 に答える