バックナンバーはこちら。
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軸移動+回転
恒例の「犬と自転車」の画像だけど、すげぇことになってるな。
こういったことを簡単に実現してくれるのがアフィン変換ってことになる。
(こいつの言う「簡単」は本当に簡単なのか?)
数式的な話
というわけでそろそろ数式的な話に入る。
数式かぁ・・・。
アフィン変換の基本式は以下になる。
\(
\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でアフィン変換のイメージを見てみた。
- 数式的な解釈の確認。
バックナンバーはこちら。
コメント