1

DirectShow を使用して Web カメラから画像をキャプチャする方法を探しています。できれば HD 解像度を使用し、60 ~ 100% の CPU スパイクを回避したいと考えています。

誰かがこれを行う方法について正しい方向に私を撃つことができますか?

DSPack を使用してみましたが、このコンポーネントにより CPU スパイクが 90 ~ 100% になります

ただし、ここの誰かが CPU 消費量を抑えて DSPack を使用する方法を知っていれば、それについても嬉しく思います :)

4

2 に答える 2

2

MitovのVideoLibraryを使用するリアルタイムビデオアプリケーションがあります。これは、適切に設計され、スレッド化され、使用可能なすべてのCPUコアを利用するオブジェクトのコレクションです。

新たなニーズを持って彼の図書館に行くと、彼がそれを予期していたのを見て、私はたいてい嬉しい驚きを覚えます。サポートもとても良かったです。

安くはありません。450ドルですが、私のニーズには、1ペニーの価値があります。非営利目的での使用は無料です:http://www.mitov.com/html/videolab.html

彼のCaptureBitMapデモは、連続するフレームをビットマップにキャプチャします。フォームにいくつかのコンポーネントをドロップするだけで、6行のコードを記述できます。ライブラリには、この単純な例よりもさらに進んだフックがたくさんあります。(Win 7、Delphi 2010では、デモは次の場所にインストールされます:C:\ Program Files(x86)\ Embarcadero \ RAD Studio \ 7.0 \ LabPacks \ Demos \ Delphi2010 \ VideoLab \CaptureBitmap。 Delphi 7.)

彼のライブラリを差別化するものの1つは、Intel IPPライブラリを利用していることです:http ://software.intel.com/en-us/articles/intel-ipp 。Intelチップセットで実行している場合、Intel DLLを出荷することを選択すると、Intelのエンジニアがチップから搾り出すことができる最高のパフォーマンスが得られます。IPPを備えたMitovのライブラリがビデオを十分に高速に処理できない場合、ビデオライブラリが処理できるとしたら驚きます。

Mitovは、Delphiコミュニティである程度の地位を築いています。彼は、CodeRageでマルチスレッドの講演者でした:http ://www.embarcadero.com/coderage5/sessions (木曜日のセッション)。

上記は私が彼の会社のサクラのように聞こえるかもしれません。私は非常に満足しているライセンシー以外の関係はありません。彼のツールを見つけて使用することにしたことをとてもうれしく思います(そして安心しました)。

于 2011-02-11T19:12:11.487 に答える
2

車に組み込まれている安価なマシンでdspackを長い間使用してきました。彼らは遅い 〜700mhzのVIAプロセッサ(シングルコア)と256MBのRAMを持っています.

このアプリケーションは、車のルーフにあるカメラから毎秒 12 枚の画像をキャプチャし、新しい GPS 位置 (1 秒に 1 回) を取得するたびに、画像に座標を追加して、ハードディスクに .jpg として保存します。

アプリケーションが画像をキャプチャし、.jpg 画像を作成せずにフォームに画像を表示する場合、アプリケーションは約5% のプロセッサ時間(!) を使用します。

DsPack で 90% の CPU 時間が得られた場合、それはおそらく画像に対して余分な処理が行われているためです。

私はこのプログラムを作成するために研究であらゆる種類のライブラリを試しましたが、dspack は多くの面で明らかに勝者でした。私はすぐにそれをあきらめませんでした。

于 2011-02-12T01:20:47.553 に答える