0

私はkinectを使用するプロジェクトに取り組んでいます。

3 つの dll を使用するこのメイン プロジェクトがあります。1 つの dll は C++ で作成された音声認識用、もう 1 つは C++ で作成されたポーズ認識用、3 つ目の DLL は C# で作成されたジェスチャ認識用です。

音声は kinect オーディオ ストリームを使用し、ポーズは色とスケルトン ストリームを使用し、ジェスチャーはスケルトン ストリームを使用します。

問題は、使用されている 3 つのストリームすべてが使用されている kinect の初期化後、オーディオとポーズ dll の両方が正常に連携することですが、ジェスチャ部分は C# で記述されており、kinect のスケルトン ストリームを再初期化して、メソッドから準備されたスケルトンで使用する必要があります。

ジェスチャ dll のみを呼び出すと正常に実行され、ジェスチャを呼び出さずにオーディオとポーズのみを呼び出すと、両方とも正常に実行されます。

ただし、これら 3 つすべてを呼び出すと、最後に呼び出されたもの (ジェスチャーまたはポーズ + オーディオ) のみが実行されます。

それで、誰かが問題が何であるかについて何か考えを持っているならお願いします?

4

1 に答える 1

0

ただし、ジェスチャ部分は C# で記述されており、kinect のスケルトン ストリームを再初期化して、メソッドのスケルトン準備完了で使用する必要があります。

これは発生する必要はありません。ジェスチャ ライブラリでもポーズ ライブラリでも、Kinect のデータ ストリームを初期化する必要はありません。これらすべてを実行してから、これらのライブラリにデータを渡します。これらのライブラリのいずれかがストリームの初期化を担当している場合は、それを置き換える必要があります。

ストリーム自体を初期化してはならない理由の最も良い例は、まさにあなたが遭遇しているものです。

一方または両方がスケルトン ストリームの初期化で他方を通過している場合は、コードを取得して修正するか、別のライブラリを使用するか、独自のライブラリを作成する必要があります。ライブラリに、見逃したデータを見るだけの関数があり、ストリームを初期化しない限り。

于 2013-03-12T13:09:36.873 に答える