MATLAB,Python,Scilab,Julia比較 第3章 その91【射影変換⑤】

MATLAB,Python,Scilab,Julia比較 第3章 その91【射影変換⑤】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その91【射影変換⑤】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/

はじめに

アフィン変換の拡張と言われている射影変換の話。
射影変換の理屈について

「3次元空間を地面平面に落とし込む」について

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

【再掲】射影変換の理屈の因果関係

太郎くん
太郎くん

まずは大まかな流れを再掲

  • 大まかな理屈(済)
  • 大まかな理屈を座標変換で説明(済)
  • 基本ベクトルと基底ベクトル(済)
  • 元画像平面を3次元空間で表現(済)
  • 3次元空間を地面平面に落とし込む
  • 一連の座標変換まとめ
  • 方程式の変形
  • 行列表現
  • アフィン変換との関係性
  • 係数の求め方
  • 係数の求め方(行列表現)
  • 射影変換の処理の流れ
フクさん
フクさん

「元画像平面を3次元空間で表現」というところまで終わっている。

3次元空間を地面平面に落とし込む

フクさん
フクさん

今回は3次元平面に浮かせた元画像平面を
地面平面に落とし込む場合の話。
まぁ、地面平面の落とす、つまりこれが射影ってことだな。

太郎くん
太郎くん

確かに、影を落とす感じはあるね。

フクさん
フクさん

画像としてはこれを見るとわかるだろう。

射影変換(3次元空間を地面平面に落とし込む)、近い方が大きく見れる、遠い方が小さく見える
太郎くん
太郎くん

確かに、影を落とす感じはあるね。

フクさん
フクさん

考え方はシンプル。
まず、\(x\prime\)と\(u\)、\(y\prime\)と\(v\)は間違いなく相関性は強い。
ここに対して高さ\(w\)の補正を掛ける。
つまり、「地面からの距離が離れるほど小さく見える」を数式で再現できればOK。
これらを加味した式は以下になる。

\(
\begin{eqnarray}
\left\{
\begin{array}{l}
\displaystyle x\prime=\frac{u}{w} \\
\displaystyle y\prime=\frac{v}{w}
\end{array}
\right.
\end{eqnarray}
\)

太郎くん
太郎くん

あ、これだけでいいのか。
言われてみれば、納得だ。

フクさん
フクさん

台形に利くのが\(w\)だね。
これがアフィン変換にはない概念を生み出している。

太郎くん
太郎くん

たしかに、\(w\)が無かったら、
移動、回転、伸縮くらいしかできなそうだもんね。

まとめ

フクさん
フクさん

まとめだよ。

  • 「3次元空間を地面平面に落とし込む」
  • 高さwのパラメータが重要で、これの影響でアフィン変換ではできなかった台形の対応が可能となる。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました