MATLAB,Python,Scilab,Julia比較 第3章 その59【アフィン変換③】

MATLAB,Python,Scilab,Julia比較 第3章 その59【アフィン変換③】 数値計算
MATLAB,Python,Scilab,Julia比較 第3章 その59【アフィン変換③】

バックナンバーはこちら。
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

アフィン変換でなにができるのか?

フクさん
フクさん

前回見せたアフィン変換の数式を再掲しておこう。

\(
\begin{bmatrix}
x\prime \\
y\prime
\end{bmatrix}=
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}+
\begin{bmatrix}
T_x \\
T_y
\end{bmatrix}
\)

太郎くん
太郎くん

で、これを変形するんだっけ?

同次座標系

フクさん
フクさん

そうそう。
以下になる。

\(
\begin{bmatrix}
x\prime\\
y\prime\\
1
\end{bmatrix}=
\begin{bmatrix}
a & b & T_x\\
c & d & T_y\\
0 & 0 & 1
\end{bmatrix}
\begin{bmatrix}
x\\
y\\
1
\end{bmatrix}
\)

太郎くん
太郎くん

なんか一個の行列にまとまったぞ!

フクさん
フクさん

この表現を同次座標系という。

太郎くん
太郎くん

またわからん用語が・・・。

フクさん
フクさん

入力の\(x,y,1\)の次数が同じって程度の意味合いだな。
例えば、今回のアフィン変換で言うと、以下のようにすべて一次式で表現できる座標系。

\(
\begin{eqnarray}
x\prime&=&ax+by+T_x \\
y\prime&=&cx+dy+T_x \\
1&=&0x+0y+1
\end{eqnarray}
\)

太郎くん
太郎くん

最後の\(1=0x+0y+1\)っていらなくない?

フクさん
フクさん

でも、それを許容することで一つの行列にまとめられるとも言える。
まぁ、アフィン変換だけの話だったらまとめなくても良いのだけど、
別の座標変換の兼ね合いで、同次座標系で表現しておいた方が都合が良いというのが本音だ。

太郎くん
太郎くん

つまり、アフィン変換以外の何かが裏で待ち構えてるってことか・・・。

フクさん
フクさん

まぁ、一個一個理解していけば、それほど難しくはない。

太郎くん
太郎くん

(すでにやべぇのだが・・・。)

そのままやるといろいろと問題が?

太郎くん
太郎くん

あとは、この数式を元にアフィン変換をやればOKなのかな?

フクさん
フクさん

そうなんだけど、
そのままやるといろいろ問題が起きるんだよね。

太郎くん
太郎くん

どんな問題?

フクさん
フクさん

座標変換先の空間が足りなくなったり、変換が満遍なくできなかったり。

太郎くん
太郎くん

よくわからん。

フクさん
フクさん

この点は次回説明しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • アフィン変換の数式の変形して同次座標系へ。
    • この表現の方が、他の座標変換の時に生きる。
  • このままやるといろいろ問題が起きる。
    • 空間不足。
    • 変換先が満遍なくならない。

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

コメント

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