6

カメラ パラメーターの決定に関する以前の質問の補足として、新しい問題を定式化しました。

同じ長方形の写真が 2 つあります。

1 つ目は、変換を行わずに四角形をそのまま表示した画像です。

2 番目の画像は、3D 変換 (XYZ 回転、スケーリング、XY 移動) が適用された後の四角形を示しています。これにより、長方形が台形に見えます。

次の図が私の問題を説明していることを願っています:

代替テキスト http://wilco.menge.nl/application.data/cms/upload/transformation%20matrix.png

どの変換 (より具体的には、どの変換行列) がこの変換を引き起こしたかをどのように判断しますか?

両方の画像のコーナーのピクセル位置を知っているので、コーナー間の距離も知っています。

4

4 に答える 4

2

よくわかりません。これは二次元の問題ですか、それとも三次元の問題ですか?

私が理解している方法では、3D 空間に埋め込まれた平らな長方形があり、その 2 つの 2D "画像" を見ています。1 つは元のバージョンで、もう 1 つは変換されたバージョンに基づいています。これは正しいです?

これが正しい場合、問題を解決するのに十分な情報がありません。たとえば、2 つの画像がまったく同じに見えるとします。これは、平行移動がアイデンティティであるためか、平行移動によって四角形がカメラから 2 倍の距離に移動し、サイズが 2 倍になる (したがって、まったく同じに見える) ためである可能性があります。

于 2009-07-13T20:18:29.723 に答える
0

あなたが持っている情報に基づいて、これはそれほど簡単ではありません。ただし、いくつかのアイデアを提供します。角の 3D 座標があれば、簡単に作業できます。これが基本的な考え方です。

  1. コーナーを原点に移動します。その後、原点を中心に回転が行われます。
  2. 軸のベクトルを決定します。これを行うには、原点から隣接する角を差し引きます。これらは、ワールドのローカルの x 軸と y 軸になります。
  3. ベクトルを使用して角度を決定します。内積と外積を使用して、ローカル x 軸とグローバル x 軸の間の角度 (1, 0, 0) を決定できます。
  4. 手順 3 の角度だけ回転します。これにより、グローバル x 軸と新しいローカル y 軸に一致する新しい x 軸が得られます。次に、x 軸を中心とした別の回転を決定して、y 軸をグローバル y 軸と整列させます。

z 座標がないと、これが難しいことがわかりますが、これが一般的なプロセスです。これが役立つことを願っています。

于 2009-07-13T20:38:42.037 に答える
0

Alex319 が指摘しているように、ソリューションは一意ではありません。

2 番目のイメージが本当に台形である場合、これはそれほど難しくありません。遠近法で台形(平行四辺形ではない)なので、二等辺台形でなければなりません。

2 つの対角線を引きます。それらは長方形の中心で交差するため、平行移動が処理されます。

平行な辺が元の長方形の 2 つの辺と平行になるまで、台形を回転させます。(どちらの2つですか?それは問題ではありません。)

中心を通る 3 本目の平行線を引きます。これを、選択した長方形の辺に合わせて拡大縮小します。

次に、平面からの回転です。中心から平行な辺の 1 つまでの距離を測定し、サインの法則を使用します。

台形ではなく四角形の場合は、さらに難しくなります。対角線間の角度を使用して回転軸を見つける必要があります。

于 2009-07-13T21:06:03.557 に答える