2

AForge を USB Web カメラで動作させることはできますが、複数のカメラに接続できるビデオ カードを持っています。AForge をビデオ カードで動作させるにはどうすればよいですか?

私の問題はVideoInputDevice、動作中のビデオ入力に設定できないことです。

コードは次のようになります。

void init(){
    FilterInfoCollection videoCaptureDevice =
        new FilterInfoCollection(FilterCategory.VideoInputDevice);

    VideoCaptureDevice finalVideo =
        new VideoCaptureDevice(videoCaptureDevice[0].MonikerString);

    finalVideo.NewFrame += new NewFrameEventHandler(finalVideo_NewFrame);

    finalVideo.Start();
}

public void finalVideo_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
    Bitmap temp = (Bitmap)eventArgs.Frame.Clone();
    pictureBox1.Image = temp;

}

私も試しました:

finalVideo = new VideoCaptureDevice();
finalVideo.CrossbarVideoInput = VideoInput.Default;

それもうまくいきませんでした。

どんな助けでも大歓迎です。

4

2 に答える 2

1

あなたのコードで

VideoCaptureDevice finalVideo = new VideoCaptureDevice(videoCaptureDevice[0].MonikerString);

最初のデバイスを登録します [0]
そこに [1] を入力すると、2 番目のデバイスが得られます。

この行にも注意してください

  finalVideo.NewFrame += new NewFrameEventHandler(finalVideo_NewFrame);

そこで、その特定のカメラで新しい画像フレームを受信したときにトリガーするイベント名 (finalvideo_Newframe) を定義します。最も簡単なのは、2 つの異なるイベントを登録することです。したがって、各カメラ [0] と [1] は、それを表示するために独自のイベントを受け取ります。

ここでは、カメラを選択するために使用するものに役立つ追加のコードヒントをいくつか示します。これは、複数の外部カメラ (2 つのコンボボックスを作成) があるが、たとえばラップトップの内部カムを使用したくない場合の単なるアイデアです。

VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            foreach (FilterInfo VideoCaptureDevice in VideoCaptureDevices)
            {
                comboBox1.Items.Add(VideoCaptureDevice.Name);
            } // to get all your devices inside a combo box;

それでできること

 FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[comboBox1.SelectedIndex].MonikerString);
于 2012-11-28T23:03:39.573 に答える
0

パッケージ全体をダウンロードするときに aforge の例を見てください。複数のカメラで動作するデモ スナップショットメーカーがあります。

于 2015-02-13T12:55:41.130 に答える