1

私たちのプロジェクトでは、ウェブカメラの画像にプログラムでアクセスしたいと考えています。私たちが抱えている主な問題は、キャプチャした画像の明るさに応じて Web カメラが自動的に感度を調整することです。

ウェブカメラ (できれば任意のモデル) のこの種のパラメーターを変更する (プラットフォームに依存しない) 方法はありますか?

現在、Ubuntu 10.04、Microsoft Windows XP & 7 を使用しています。プログラミング言語は C/C++ です。

どんなアイデアでも大歓迎です。

ありがとう、トバイアス

4

1 に答える 1

3

必要なことを実行するためのプラットフォームに依存しない方法はほとんどないでしょう。存在する場合、それはおそらく適切ではない高級言語を使用することによるものです。

Linux プラットフォームについてはわかりませんが、インターネット ベースのビデオ アプリケーションを扱う C++/windows/COM/DirectShow 開発者です。

Windows プラットフォームでは、キャプチャ デバイスは COM および DirectShow 経由で通信されます。

Windows でのビデオ キャプチャの概要については、MSDNの「ビデオ キャプチャ」セクションを参照してください。

システム上のキャプチャ デバイスを列挙する方法については、キャプチャ デバイスの選択を参照してください。Web カメラをビデオ入力デバイスとして (プログラムで) 検出するには、CLSID_VideoInputDeviceCategory でデバイスを列挙する必要があります。このカテゴリには多くのデバイスが存在する可能性があります。

ビデオ キャプチャ デバイスには、後で使用するためにデバイスを保存および取得できる Web カメラを識別するのに役立つ "FriendlyName" があります。

デバイスを取得すると、デバイスを構成したいというクエリが表示されます。これについては、ビデオ キャプチャ デバイスの構成を確認してください。

DirectShow は、Microsoft の最も包括的な (そして習得が難しい) API の 1 つです。 DirectShow の MSDN 開発者フォーラムは非常に活発で、初心者に優しいので、ぜひチェックしてみてください。

最後に、キャプチャ グラフは DirectShow で作成するのが最も簡単なことではありません。単純な再生グラフから始めます。たとえば、ディスクからメディア ファイルを再生し、そこからキャプチャ グラフに進みます。

VLC プロジェクトはオープン ソースでクロスプラットフォームであり、Windows プラットフォームでの再生には DirectShow を使用します。

幸運を!

于 2010-10-12T13:01:38.077 に答える