8

DirectShow.Net を使用して Web カメラを C# (4.0) アプリにストリーミングし、QR コードを読み取ります。スナップショットを 0.5 秒ごとに取得して、QR コードを見つけてデコードできるかどうかを確認します。これは、ウェブカメラを取得できる任意の解像度で私の開発用コンピューターでうまく機能しますが、ターゲットマシン (Panasonic CF-U1 Toughbook - Intel Atom プロセッサー) で試してみると、より高い解像度にすると本当に動きが鈍くなり始めます。ウェブカメラで 800x600 以上。

DirectShow.Net DxSnap サンプル (名前空間スナップショット) の Capture クラスを使用しています。プレビューを描画するための Picturebox を渡しています。これがシステムを動かしていると確信しています (ビデオ カードが機能していないだけだと思います)。プレビューを描画する必要があります (ユーザーがスキャンしようとしているものを確認できるようにするため) が、QR コードを探すために撮影される画像と同じ解像度である必要はありません。このプログラムは画面解像度の低いデバイス用に作成されているため、プレビュー ボックスの最大サイズは 320 x 240 です (カメラで選択された解像度に応じて縦横比を調整します)。

だから私が探しているのは次のいずれかだと思います:

  1. 同じ Web カメラから 2 つのストリームを取得する方法。1 つはプレビュー用の低解像度で、もう 1 つはキャプチャ用の高解像度です。

  2. これに相当するもので、画像ボックスに書き込まれる直前に解像度を下げる可能性があります (もう一度、DirectShow.Net プロジェクトの DxSnap サンプルの Capture クラスを使用します)。

  3. ピクチャ ボックスがあまり更新されないようにする方法

  4. この種のものに使用する DirectShow.Net 以外のもの (デスクトップ スペースで Windows XP から Windows 8 までのすべてで動作する必要があります)。

ご協力いただきありがとうございます。

4

1 に答える 1

0
  1. SmartTee または InfiniteTee を使用してストリームを分割できますが、分割後に解像度を変更する方法がわかりません。
  2. これを行う方法がわからない。
  3. 画像をキャプチャし、SampleGrabber を使用して画像ボックスに手動で配置できます。次に、フレームが画像ボックスに表示されるタイミングを完全に制御できます。
  4. XP 以上が必要な場合は、DirectShow を使用する必要があります。MediaFoundation (最新の代替手段) は Vista 以降のみです。

私のアプリケーションは現在、ユーザーが見ているビデオの解像度とは異なる解像度で画像をキャプチャしています。私が使用している Web カメラ (Logitech C920) にはキャプチャ ピンと静止ピンの両方があり、ビデオ フォーマットのリストが異なるため、これを行っています。各ピンの解像度のセットを個別に取得し、必要なものを変更できます。私のアプリケーションは Still ピンの解像度のみに関心があるため、Capture ピンが常に 640 x 480 のままである限り、解像度を変更します。SmartTee は Still ピンを必要とせずにこれと同様のことを行うはずだと思いますが、私は DirectShow の達人ではないので、他の誰かがその情報を記入する必要があります。

于 2013-08-05T16:32:46.103 に答える