7

Windows8アプリで顔追跡アプリを実行しようとしています。また、カメラストリームにアクセスするには、このサンプルMediaCapture.AddEffectAsync()に示すように、C++に組み込む必要があるものを使用する必要があることを認識しています。

これで、ストリームにアクセスして顔を追跡することはできますが、追跡する顔の座標をC#に渡して、さらに処理することはできません。

私が試した1つの方法は、C ++でC#メソッドを呼び出して、追跡座標を返すことです。ただし、Visual Studioではプロジェクト間の循環依存が許可されていないため、役に立ちません。

もう1つの方法は、C ++から常にデータをプルすることですが、これは私が望んでいることではありません。

たぶん、カメラバッファにアクセスする別のもっと簡単な方法があるかもしれません、私は知りたいです。

だから私の質問は、追跡座標を取り戻す方法ですか?またはそれを行う正しい方法は何ですか?ありがとう!

4

1 に答える 1

1

これを克服するために、C++ DLL と C# コードの間に TCP/IP localhost 接続をセットアップするだけです。つまり、C# をサーバーに、C++ DLL をクライアントにします。C++ DLL が C# と通信したいときはいつでも、C++ は TCP/IP ソケットを介してデータを C# に渡すだけです。現在、Windows 8 は、同一プロセス内の TCP/IP 通信に制限を設けていません。

良い開始リファレンスはStreamSocket サンプルです

これは最善の方法ではなく、データが TCP/IP レイヤーを通過する必要があるため、パフォーマンスがわずかに低下します。しかし、これまでのところ、 Microsoftが障壁を破らない限り、おそらくこれが私たちにできる最善の方法です。

于 2012-10-29T06:54:00.520 に答える