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

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

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

フクさん
フクさん

そうそう。
画像で示すとこんな感じになる。

\(
\begin{eqnarray}
\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}\\
\begin{bmatrix}
a & b & T_x\\
c & d & T_y\\
0 & 0 & 1
\end{bmatrix}^{-1}
\begin{bmatrix}
x\prime\\
y\prime\\
1
\end{bmatrix}&=&
\begin{bmatrix}
x\\
y\\
1
\end{bmatrix}\\
\begin{bmatrix}
x\\
y\\
1
\end{bmatrix}&=&
\begin{bmatrix}
a & b & T_x\\
c & d & T_y\\
0 & 0 & 1
\end{bmatrix}^{-1}
\begin{bmatrix}
x\prime\\
y\prime\\
1
\end{bmatrix}\\
\end{eqnarray}
\)

太郎くん
太郎くん

お!なんか割とさくっと求まったな。
そうか、逆行列を使えばいいのか!

フクさん
フクさん

そうそう。

代表的なアフィン変換

フクさん
フクさん

そして、そろそろ実際のプログラムを作成していきたいところだが・・・。

太郎くん
太郎くん

まだなんかあるんか・・・。

フクさん
フクさん

いや、代表的なアフィン変換のパラメータの設定方法の確認をするだけだ。
これをやっておかないと、アフィン行列にどういう値を設定して良いかがわからないからね。

太郎くん
太郎くん

たしかにアフィン変換の数式はわかったけど、何をどうしたらどうなるかはわからんな。

フクさん
フクさん

というわけで次回にそれらを確認する。

まとめ

フクさん
フクさん

まとめだよ。

  • まだら模様対策のシンプルなやつを確認。
    • アフィン逆変換を使う。
  • アフィン逆変換は、アフィン変換の式を変形しただけ。
    • アフィン行列が逆行列になる。

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

コメント

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