MATLAB,Python,Scilab,Julia比較 第3章 その109【射影変換、アフィン変換合成①】

MATLAB,Python,Scilab,Julia比較 第3章 その109【射影変換、アフィン変換合成①】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その109【射影変換、アフィン変換合成①】

バックナンバーはこちら。
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の場合、アフィン変換と同一の式になる。

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

コメント

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