2012-03-13 18 views
2

私は3つの次元の3つの(非同一直線上の)点の2つのセットを持っています。私はポイント間の対応を知っています - すなわち、セット1は{A、B、C}であり、セット2は{A '、B'、C '}です。3Dリジッドレジストレーション - 最小点解析ソリューション - 回転行列の作成方法

A 'をA、B'をB、C 'をCに変換する変換と回転の組み合わせを見つけたいと思います。注:スケーリングは行われません。 (私は確かにこれを知っていますが、もし存在すればそれをどのように扱うのか不思議です)

これを行う方法を試しながら、私はsolid explanationのように見えました。セクション3(3ページ)の「3ポイント登録」は、私がする必要があるように見えます。私はステップ1〜4と6〜7を分かりますが、5は私に困ってしまっています。

5. Build the rotation matrices for both point sets: 
    Rl = [xl, yl, zl], Rr = [xr, yr, zr] 

どうすればよいですか?

後で最小二乗ソリューションを実装する予定ですが、まずこれを実行します。

答えて

1

this documentは、そのセクションの同じコピーを持っているようですが、それに続くのはの作業例です。私は、ステップがどのように機能するかはまだ分かりませんが、私よりもはっきりしているかもしれません。

更新:R1の列1は、以前に構築されたx軸(元の軸に関して[0,1,0])です。ですから、x、y、zは列ベクトルとしての軸です。それは意味があります...そして、私はRrが他の座標系で同じであると仮定します。

はクリアですか?

+0

作業例ftw!ありがとう、それは確かに理にかなっています。 (そして、そうです、Rrは他の座標系でも同じです) –

0

私はそれを刺すでしょう。

各点は、a_1x + b_1y + c_1z = d_1、右であるので、 のa、b、c値の2つの3x3行列を作成します。

次いで、各点は互いに独立しているので、あなたは、二つの行列間の変換のためのいくつかの線形代数後にA及び「

TA = A」 を解決することができ、

T = A 'inv(A)

MATLABで試してみてください。

+0

私はちょうどMATLABを試しましたが、それはダミー点とスケールと回転を組み合わせて私のために働いていました。登録とは、通常は2つの画像を整列させることを指し、変換のための単なる解決以上のものを含みます。通常、画像は参照点に移動され、コスト関数が適用されます。 – wbg

+1

これは、AからA 'への線形マップを解きます。 3点については、そのような地図は常に存在する。しかし、線形マップはRotation + Translationと同じではありません。 – japreiss

+0

アフィン変換は、0 0 1の余分な行を使用するため線形ですが、これが何を呼び出すのか忘れてしまいます。 9度の変換、スケール、腐敗および平行移動には逆数があり、剪断のみが壊れます。アフィン変換には12のdofがあり、それだけです。反射は回転です。 – wbg

関連する問題