2017-05-08 26 views
0

私は3Dオブジェクトを持ち、すべての方向にエクスポートしたいと思います。私は自宅の画像を持っています.2次元平面に投影すると、正方形のようなものしか表示されませんが、私は別のビューを与える(要するに、より良い視覚化のために同じ3Dオブジェクトの異なる2D投影をしたい)。私はそれを行うことができるPythonライブラリやアルゴリズムを探しています。 enter image description here2次元平面に3Dモデルを投影する

+0

私はPythonコードを探しています。 – Renu

+0

ようこそ!そのようなことを行うライブラリはたくさんあります。とにかく、あなたの質問は不明で、何の努力も欠いています。これはおそらく、その申し訳ありませんが残っている場合は大幅にdownvotedされます。 – Ash

+0

実際に3Dモデルを2D平面に投影したいと思います。このペーパーのfig.1を参照してください。https://pdfs.semanticscholar.org/087d/87eb6fc37245b7867cde27235c2f23574949.pdf実際に私が探しているアイデアが得られます。 – Renu

答えて

0

これは、射影変換で行うことができます。これは実際には2つの行列乗算と1つの除算です。 Pythonの1行に書かれているかもしれません。 enter image description here

右のベクトルは、3Dモデルの多くの3D頂点の1つです。行列[r_11 ... t_3]は剛体変換であり、平面の位置と向きを表します(カメラの姿勢や外部カメラのパラメータと呼ぶ人もいます)。この行列は、個々の投影ごとに変更されます。行列[f_x ... 1]は投影そのものを定義し、通常は変更されません。アプリケーションでは、恒等行列を使用するだけでよい(したがって、無視することもできます)。最後のステップは、変換されたベクトルを、z = 1の距離でイメージ平面上に配置する方法でスケーリングすることです。u_xとu_yは、対応する2D座標です。

+0

答えをありがとう、私は明確な理解のために私の質問を編集しました。不便のために申し訳ありません – Renu

+0

それは透視投影のように見えますが、私は正射投影をしたい – Renu

+0

正射投影は計算が簡単です。あなたは上記の変換の2つの右のコンポーネントだけが必要です。結果ベクトル[r_11 ... t_3] * [A_x; A_y; A_z]、z成分をゼロに設定するだけです。 – eidelen

関連する問題