2017-01-25 20 views
0

ORB-SLAM2を使ってアプリケーションを実装しました。現在のところ私の活動にはOpenCV JavaCameraViewがあり、カメラフレームはMatに変換され、SLAMシステムに送られます。 今はすべて動作していますが、レンダリングしてカメラの画面上の正しい場所に仮想オブジェクトを表示する方法がわかりません。ORB SLAM 2 - AR実装(Android用)

単純なARアプリケーションを実装して、画面上に仮想オブジェクトとしていくつかの簡単なテキストを表示したいと考えています。これを達成するためのステップを私に与える援助は歓迎されます。あなたがするために行う持っているもの

+0

基本的なテキスト描画が必要な場合は、カメラサーフェスビューから取得したキャンバスを使用して、検出された座標を取得してからテキストを描画できます。あなたの正確な難しさは何ですか? – yakobom

+0

@yakobom、現在私はSLAMシステムしか動かすことができません。ユーザーが新しい仮想テキストを追加したいときに、何から集めるべきか分かりませんし、xとyの計算方法もわかりませんトラッキングスレッドが実行されているときにそのキャンバスに描画されるテキスト。 –

答えて

0

は次のとおりです。ORB-SLAMから

  1. あなたは、3Dの点の点群があります。このポイントクラウドに仮想オブジェクトを配置する必要があります(仮想オブジェクトのポイントにx、y、z座標を割り当てることを意味します)
  2. これらの3Dポイントをあなたのカメラに特有の投影行列を使用して、2D画像平面上の3D点の位置を得ることができます。
  3. 次に、取得した2D位置に従って画像上にオブジェクト/ポイントを描画する必要があります(2)。

ORB-SLAM自体も単純なARを実行する機能を持っています。おそらく、それらが使用するコードを見ることもできます。

+0

ええ、私はARサンプルを見ました。しかし、それをアンドロイドに変換できませんでした。すべての機能はLinuxライブラリのためのものでした。 –

+0

現在、私はすべての3Dポイントを取得してスクリーンに投影することができます。今問題は、2Dの画面をタッチしたユーザーを3Dポイントに変換するにはどうすればいいのですか? (元のORB_SLAMのサンプルARソースコードは、カメラの真下にある平面だけを作成しています。) –

+0

私は今でも同じことをやっています。あなたはUnityを使用することにオープンですか?私はiOS上でそれを使用しました - 私は動き回ることができる3D空間にオブジェクトを配置しました。 –

関連する問題