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

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

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

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

太郎くん
太郎くん

アフィン変換が座標変換という話自体は分かった気もするけど、
具体的にどういうことができるの?

フクさん
フクさん

できるこは、以下になるな。

  • 伸縮
  • 移動
  • 回転
  • 剪断
フクさん
フクさん

上記を組み合わせることも可能だ。
例えば、X軸方向に拡大した上で、Y軸方向へ移動し、中央の原点を起点に回転とか。

太郎くん
太郎くん

剪断ってなんだ?

フクさん
フクさん

長方形な画像を平行四辺形な感じに変換するやつだな。

太郎くん
太郎くん

よくわからんが、斜めになるような感じか??

フクさん
フクさん

その認識でOKだ。

アフィン変換の具体例

太郎くん
太郎くん

うーん、もっとこう具体的な結果みたいなのがあるとイメージ沸きそうなんだけど・・。

フクさん
フクさん

ならば、このアニメーションgifとかを見てもらった方が良いかもね。

X軸伸縮+Y軸伸縮+回転

犬と自転車-X軸伸縮Y軸伸縮回転アフィン変換

X軸伸縮+Y軸移動+回転

犬と自転車-X軸伸縮Y軸移動回転アフィン変換
太郎くん
太郎くん

恒例の「犬と自転車」の画像だけど、すげぇことになってるな。

フクさん
フクさん

こういったことを簡単に実現してくれるのがアフィン変換ってことになる。

太郎くん
太郎くん

(こいつの言う「簡単」は本当に簡単なのか?)

数式的な話

フクさん
フクさん

というわけでそろそろ数式的な話に入る。

太郎くん
太郎くん

数式かぁ・・・。

フクさん
フクさん

アフィン変換の基本式は以下になる。

\(
\begin{eqnarray}
x\prime=ax+bx+T_x \\
y\prime=cx+dy+T_y
\end{eqnarray}
\)

フクさん
フクさん

これを行列で表現しなおす。

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

太郎くん
太郎くん

まぁ、行列と言っても、さっきの方程式を書き換えてるだけだから、
意味としては全く一緒だね。

フクさん
フクさん

これをさらに変形するのだが、そこは次回説明!

太郎くん
太郎くん

(また何かいらんことする気か・・・。)

まとめ

フクさん
フクさん

まとめだよ。

  • アフィン変換でなにができるのかを確認。
    • 伸縮、移動、回転、剪断が可能。
  • アニメーションgifでアフィン変換のイメージを見てみた。
  • 数式的な解釈の確認。

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

コメント

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