|
分類:[C#]
C#でAForgeを使用してカメラのプログラムを作成しています。 AForgeをクラスに設定して、複数カメラの制御をして、全ての機能は正常に動作して居るのですが、一点、カメラプロパティーの動作だけが以下の様な症状に成ります。
各社のカメラを混在して使用して居る時は正常に動作する。 一社のカメラの同一カメラ(通常は複数のカメラを使用する時は同一カメラになると思います)の時、どのカメラのプロパティーの制御を行っても、最初のカメラのみしか制御出来ません。 従って、現在、カメラのプロパティーの設定は、カメラ1つのみを接続して設定し、そのカメラを外して次のカメラ1つのみを接続してプロパティーを設定して・・・・と言う様にして居ます。
プログラムは
af.AfParameterSet(iCam, this.Handle); // iCamはカメラ番号
AfParameterSetの内容は public void AfParameterSet(int iDevNum, IntPtr hndHandle) // Af クラス { afm[iDevNum].AfmParameterSet(hndHandle); // Afmクラスをカメラ数分配列にして、カメラ番号毎に呼び出し。 }
AfmParameterSetの内容は public void AfmParameterSet(IntPtr hndHandle) // Afm クラス { ((VideoCaptureDevice)videoSource).DisplayPropertyPage(hndHandle); // AForgeの関数 }
他の解像度設定、画像取り込み、その他の機能は同じ構造で正常に動作して居るのですが、DisplayPropertyPageのみ上記の様な動作と成ってしまって居ます。 このカメラプロパティーはカメラメーカーのプロパティーページを呼んで居るだけの様で、これだけで設定出来てしまうので、いじる所が無く困っております。 元々、複数のカメラの制御を考慮していない関数なのかも知れませんが。何方か解決方法をご存知の方、お教えください。
よろしくお願いいたします。
|