だから私はsetSurfaceについて知っており、それをオーバーレイなどとして使用しても問題ありません-それはサーフェスコントロール上にあります。そうは言っても、ピクセルデータを取得することに困惑しています
1) 考えられるすべて (コントロール、ルートなど) を試して、描画キャッシュ関数を使用してカメラ サーフェスのビットを取得しました。いやいや。キャッシュされたビットマップは常にゼロになります。
2) setSurface ターゲットとして、SurfaceView と GLSurfaceView の両方を正常に使用しました。TextureView など、他のクラスは使用できません。
3) C API を調べたところ、カメラが connectOnFrameAvailable を公開していることがわかります。これにより、ピクセルにアクセスできるようになります。
私の推測では、内部タンゴ ロジックは Java のサーフェスを使用して、基になるビット転送チャネルにアクセスしているだけだと思います。C API では、テクスチャ ID が必要です。結局のところ、カメラ データはかなり早く GPU に出荷され、CUDA lib がそれで動作するに違いありません - 物事の状態を考えると、デバイスをルート化せずに Java 側でビットを取得する方法がわかりません - 単に私がテクスチャを持っているか、画面上に生のビットをレンダリングする単純な表面ビューは、それらに到達できるという意味ではありません。
画像データを GPU から剥がしたくありません。そのためには、忙しいアニメーションを時計からカレンダーに切り替える必要があります。
C API に飛び込む前に、Java でカメラ ビットを取得する方法はありますか? 私は本当にそれらを特定のポーズに関連付けたいと思っていますが、今のところ、それらを取得する方法さえまったくわかりません. 3Dポイントの位置と色を知りたいです。カメラの組み込み関数、ポイント クラウド、およびポイント クラウドを生成した 2D 画像だけが必要です。しかし、ピクセルを取得できなければ何もできず、画像と (ポーズとポイント クラウド) の関係が疑わしいほど、どんな努力も大ざっぱになります。
C に飛び込むと、connectOnFrameAvailable で必要なものが得られますか? 点群生成とどの程度同期していますか? ああ、私はこれを正しく理解していますか?深度はカラーカメラ、ポーズは魚眼?
Java と C を混在させることはできますか。つまり、Java で Tango インスタンスを作成し、イメージの問題に C のみを使用できますか? それとも、C ですべてを再認識して、tango Java jar の使用をやめる必要がありますか?