6

私はいくつかの世界座標系に関して2台のカメラを較正しました。私は世界フレームに対してそれぞれの回転行列と平行移動ベクトルを知っています。これらの行列から、あるカメラの回転行列と並進ベクトルを他のカメラに対してどのように計算するか?2台目のカメラに対する1台のカメラの外部パラメータを計算するにはどうすればよいですか?

ご意見やご提案をお願いします。ありがとう!

答えて

0

まず、回転行列を回転ベクトルに変換します。各カメラに2つの3dベクトルがあり、A1、A2、B1、B2と呼んでください。あなたが必要とするルールが

A relative to B = (A relative to O)- (B relative to O) 

があなたの2つのベクトルにそのルールを適用すると、あなたが互いに対して彼らのポーズを持つことになりますで、いくつかの原点Oに対するそれらのすべての4を持っています。

回転行列からオイラー角に変換する際のドキュメントの中には、hereと他の多くの場所があります。 openCVを使用している場合は、Rodriguesを使用してください。 Hereは私が見つけたいくつかのmatlab /オクターブのコードです。

+0

お返事ありがとうございました!回転行列を2つの3Dベクトルに変換する方法を少し説明してください。私はあなたが回転行列の軸 - 角度表現を意味すると思います。私は、3x3回転行列R1と、第1カメラ用の3D平行移動ベクトルT1と、第2カメラ用のR2、T2とを有する。 – Karmar

+0

回転行列を1の3dベクトルに変換し、平行移動ベクトルをもう1つの3dベクトルとし、軸の角度表現を意味します。 – Hammer

+0

ありがとうございます。もう一つ質問してください。あなたはCで回転行列 - >軸 - 角度変換のためのいくつかのリンクまたはソースコードを与えることができますか? – Karmar

4

ここでは、3x3回転行列R1とR2、および3x1変換ベクトルt1とt2を既に持っているので、より簡単な解法です。

これらは世界座標フレームから各カメラへの動きを表します。つまり、pがワールド座標フレームで表現されたポイントであれば、カメラ1フレームで表される同じポイントはp1 = R1 * p + t1。

カメラ1から2への動きは、単純に、(a)カメラからFRAMEフレームへの動き、および(b)ワールドフレームからカメラ2への動きの合成です。これは簡単に計算できます組成物は、次のように

  1. フォーム4x4のロト翻訳QW1 = [R1のT1]とQW2 = R2のT2]、[0 0 1]に等しい4行目との両方行列します。これらの行列は、カメラ1および2の世界座標系からの回転移動を完全に表現する。
  2. FROMカメラ1から世界フレームへの動きは、単純にQ1w = inv(Qw1)です。ここで、inv()は代数逆行列、すなわち非特異行列Xごとにinv(X)* X = X * inv(X)= IdentityMatrixとなるような代数逆行列です。
  3. カメラ1から2への回転移動はQ12 = Q1w * Qw2となり、カメラ2から1への変換はQ21 = Q2w * Qw1 = inv(Qw2)* Qw1となる。

いったんQ12を作成すると、それぞれの上部3x3サブマトリクスと3x1サブカテゴリから必要に応じて回転部分と平行移動部分を抽出することができます。

+0

フィードバックと詳細な説明をありがとう! – Karmar

関連する問題