• 締切済み

誤差を最小化する相似変換行列の求め方

三次元の変換行列について質問です。 空間上のある3点について、座標変換前と変換後の座標が与えられているとします。 その座標を元に、行った変換の表す行列を知りたいと考えております。 ただし変換は並進と回転のみとし、剪断変形等は行わないという条件です。 (行列は同次変換の形などで得られれば良いです) ただし、変換前と変換後では三点の相対的な位置関係は完璧には一致しておりません。 そのため得られた変換を元の3点に行った際に、変換後の3点の座標(既知)との 誤差を最小化したいという問題です。 変換が相似変換でなければ疑似逆行列により計算が可能と思いますが、 並進・回転のみなのでどうしようか聞きたいと思い質問をしました。 パラメータは「x, y, z 軸方向の並進移動量 + x, y, z 軸周りの回転量」の6つなので、 プログラムを組んで6パラメータを少しずつ変化させ、 誤差の二乗和が最小となる箇所を探すという方法は思いついております。 ですが、その他に行列計算により解析的に答えを得る方法はないでしょうか。 また、変換前後の3点を元に誤差を最小化する変換行列を得ることが可能であるなら、 座標の情報が3点でなくそれ以上の場合でも計算は可能でしょうか。 質問は数学のようですが、この手の計算はCGや画像処理等で多く行われていると 感じたことから、情報工学カテゴリーで質問をさせて頂きました。 よろしくお願いいたします。

みんなの回答

  • trytobe
  • ベストアンサー率36% (3457/9591)
回答No.1

変換前の3点を△ABC とみなし、変換後の3点を△A'B'C' とみなして、 それぞれの三角形の法線ベクトルを求め、 2つの法線ベクトルの向きが平行になるように法線回りの回転(ひねり角度)と、法線を飛行機の機首のように持ち上げる回転とを行い、 その後は、法線ベクトルが同じ点に揃うように平行移動(並進)させる、 というだけで十分ではないでしょうか。

関連するQ&A

専門家に質問してみよう