0

今、私がやろうとしているのは、Axis IPカメラからのストリーミング画像を表示する新しいGUI、本質的にはdirectX(より正確にはdirect3D)を使用するソフトウェアを作成することです。

とりあえず、プログラム全体のフローは次のようになると思いました。1.Axisプログラムを取得してストリーミング画像を取得します。2。画像をDirect3Dプログラムに渡します。3.画面にプログラムを表示します。

現在、私はaviビデオからビデオフレームをロードして表示する(テスト用の)やや基本的なDirect3Dアプリを作成しました。DirectXを使用してビデオから直接画像をロードする方法がわからないため、OpenCVを使用してビデオからフレームを保存し、DXにアップロードさせました。非常に遅い。

現在、いくつか不明な点があります。1. C ++で動作するAxisプログラムを入手する方法(後で例を調べますが、大したことはありません)2.AxisIPカメラプログラムから直接画像をアップロードする方法。

では、私のプログラムをより効率的に機能させる方法について、何かアドバイスや提案はありますか?何でも私に知らせてください。

4

3 に答える 3

0

directshow を使用して、解凍されたビデオ データを直接 Direct3D テクスチャに直接コピーするカスタム レンダラーを遠端に追加する方が高速であることがわかる場合があります。

そのテクスチャをダブルバッファリングする価値があります。つまり、テクスチャ 0 を表示し、テクスチャ 1 もアップロードして、新しいフレームが利用可能になったら 2 を入れ替えます (つまり、テクスチャ 0 にアップロードしている間にテクスチャ 1 を表示します)。

このようにして、ビデオ フレーム レートをレンダリング フレーム レートから切り離すことができ、ドロップ フレームの処理が少し簡単になります。

于 2009-08-25T10:04:03.863 に答える
0

Direct3D テクスチャのインプレース アップデート ( を使用IDirect3DTexture9::LockRect) を使用しており、非常に高速に動作します。プログラムのどの部分が遅く動作しますか?

于 2009-08-25T10:20:18.090 に答える
0

Axis カムから画像をキャプチャするには、iPSi c++ ライブラリを使用できます: http://sourceforge.net/projects/ipsi/

画像をキャプチャし、カメラのズームと回転を制御するために使用できます (利用可能な場合)。

于 2009-08-25T11:04:31.170 に答える