5

Microsoft LifeCam HD-5000 ウェブカメラを持っています。AMCap によると、カメラは 720p で 30fps の MJPEG ストリームを出力します。CPU 使用率を可能な限り最小限に抑えるために、プレビューや解凍/トランスコーディングを行わずに、小さなアプリケーションで各 JPEG フレームをキャプチャしたいと考えています。

私は C# 開発者ですが、DirectShow は初めてです。MJPEG ストリームを解凍せずに C#/.NET のカメラからの出力としてフレームごとにキャプチャする簡単な方法はありますか?

4

3 に答える 3

1

まず、カメラにアクセスするために DirectShow を使用する必要がない場合があります。opencvdotnetで利用可能な .net バインディングを持つOpenCVプロジェクトを確認してください。

DirectShow ルートを使用する場合は、directshownetプロジェクトで入手できる .NET バインディングが必要です。ウェブカメラをソース フィルターとして、サンプル グラバーを宛先フィルターとして含むフィルター グラフを作成するのが最善の策だと思います。サンプル グラバーのドキュメントはMSDNにあります。これにより、生データにアクセスできるようになります。また、特定のデータ形式を要求し、DirectShow インテリジェント コネクトを使用して、フィルター グラフに適切な変換フィルターを入力することもできます。

そうは言っても、DirectShowよりもOpenCVを強くお勧めします。DirectShow は非常に汎用的であり、必要以上のことを行う可能性があります。OpenCV を使用して、カメラにすばやくアクセスできます。おそらく、このスタックオーバーフローの質問Webcam Usage in C#で、詳細と回答を確認してください。

于 2010-11-01T17:43:36.133 に答える
0

Directshow.net ダウンロード パッケージにはサンプル コードが含まれており、Capture 内には、directshow.net を介して Web カメラに接続し、ストリームから画像をスナップするプロジェクト DxSnap があります。あなたはそれを見て、それを出発点として使うことができます。

于 2011-07-19T19:01:22.447 に答える