バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia3-backnumber/
はじめに
射影変換の話の続き。
射影変換はアフィン変換の拡張系と言われている。
それについての話。
登場人物
博識フクロウのフクさん
イラスト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
そういえば。
ちょっと思い出したんだけど。
何?
射影変換ってアフィン変換の拡張型って話があったじゃん?
そうだね。
以前その話はしたね。
今のところ、射影変換でアフィン変換的な雰囲気があんまりないんだよね。
座標変換という意味では一緒なのかもしれないけど。
射影変換は数式的にはアフィン変換の拡張型
理屈上、アフィン行列を射影変換に渡すとアフィン変換をしてくれる。
まずは、それぞれの数式を確認してみよう。
射影変換
\(
\color{red}{s}\color{black}{}
\begin{bmatrix}
x\prime\\
y\prime\\
1
\end{bmatrix}=
\begin{bmatrix}
a&b&c\\
d&e&f\\
\color{red}g&\color{red}h&1
\end{bmatrix}
\begin{bmatrix}
x\\
y\\
1
\end{bmatrix}
\)
アフィン変換
\(
\begin{bmatrix}
x\prime\\
y\prime\\
1
\end{bmatrix}=
\begin{bmatrix}
a&b&c\\
d&e&f\\
\color{red}0&\color{red}0&1
\end{bmatrix}
\begin{bmatrix}
x\\
y\\
1
\end{bmatrix}
\)
数式上で赤字で書いた部分がポイントになる。
射影変換行列のgとhの部分はアフィン変換では未使用ということもあり、基本0にする。
そして、射影変換行列のgとhが0の場合、左辺のsは必ず1になる。
つまり、gとhが0だと、アフィン変換の座標変換と同じ式になるってことだな。
なんか、ややこしい感じにはなってるが、
一応納得感はあるかな・・・。
まぁ、実際に動かして確認すればスッキリすると思うよ。
まとめ
まとめだよ。
- 射影変換は数式上はアフィン変換の拡張型。
- 射影変換とアフィン変換の数式を確認。
- 射影変換のgとhが0の場合、アフィン変換と同一の式になる。
バックナンバーはこちら。
コメント