点群と複数の画像を使用しています。カメラの内部パラメータと外部パラメータを知っています。私が望むのは、カメラを回転させて(位置を変更せずに)特定の方向に表示する回転行列を見つけることです。より具体的には、平面を点群に合わせてから、カメラの視線方向を平面に垂直に表示するように調整します(位置を変更せずに)。
したがって、カメラの回転行列が与えられると、画像のホモグラフィ変換も見つかります。
誰かがこれで私を助けてください。
点群と複数の画像を使用しています。カメラの内部パラメータと外部パラメータを知っています。私が望むのは、カメラを回転させて(位置を変更せずに)特定の方向に表示する回転行列を見つけることです。より具体的には、平面を点群に合わせてから、カメラの視線方向を平面に垂直に表示するように調整します(位置を変更せずに)。
したがって、カメラの回転行列が与えられると、画像のホモグラフィ変換も見つかります。
誰かがこれで私を助けてください。
x
が画像の中心であると仮定しますc = [a,b,1]
(これは、画像が 2D 画像であることを考慮しています)。
これで、内部パラメーター行列K
と外部回転行列が得られましたR
このスタイルで方向を見つけることができます:
temp_X = inverse(K) * c
temp_X = transpose(R) * temp_X
direction = temp_X / norm(temp_X)
final direction = t - direction
これが完全に正しいかどうかはわかりませんが、試してみてください。
をカメラdir1
の現在の方向、カメラのdir2
ターゲット方向とする。正規化された方向ベクトルを計算します。
d1 = dir1 / |dir1|
d2 = dir2 / |dir2|
d1
からまで回転する行列を取得しd2
ます。言い換えると、この行列はtheta
、 の方向の軸を中心にの角度で回転を実行する必要がありますu
。ここで、
u = (d1 x d2) / |d1 x d2| <-- normalized cross product of d1 and d2
sin(theta) = |d1 x d2| <-- the length of the cross product
cos(theta) = d1 * d2 <-- dot product of d1 and d2
最後に、上記の値をこの式に代入し (詳細はこちら)、要求された行列を取得します。