本記事は、私がアフィン変換を勉強し始めた当初の記事になります。
今では、3×3行列の同次座標行列と呼ばれる行列しか用いておらず、こちらの方が断然おススメなので、下記ページを参照ください。
アフィン変換(平行移動、拡大縮小、回転、スキュー行列)
画像の拡大縮小、回転、平行移動などを行列を使って座標を変換する事をアフィン変換と呼びます。 X,Y座標の二次元データをアフィン変換するには、変換前の座標を(x, y)、変換後の座標を(x',y')とすると回転や拡大縮小用の2行2列の行列と、...
以下は、2×2行列を使ったアフィン変換の説明です。
回転行列
点(x, y)を原点まわりに反時計方向にθ度回転する行列は
拡大縮小行列
点(x, y)を原点に関してX軸方向にSX倍、Y軸方向にSY倍する行列は
平行移動行列
点(x, y)をX軸方向にTX、Y軸方向にTYだけ移動する行列は
ただし、平行移動だけ行列の足し算になると、扱いにくい場合があるので3×3行列を用いて以下のように表す場合もあります。
というより、こちらを使う方が便利です。(私はこちらしか使いません。)
【回転行列】
【拡大縮小行列】
【平行移動行列】
とすることで、すべての座標変換を行列の積で扱うことができます。
この行列を同次座標行列と言います。
詳細はこちらを参照ください。
参考まで...
個人的には回転行列を覚えるのは苦手で、SinとCosが逆になっりマイナスのつける位置を間違ったりしていたのですが、次のように考えることで少しは覚えやすくなりました。
下図のように
点(1,0)をθ度回転すると(Cosθ、Sinθ)
点(0,1)をθ度回転すると(-Sinθ、Cosθ)
に移動することはすぐにわかります。
このことを行列で表現すると
点(1,0)が(Cosθ、Sinθ)になることから
点(0,1)が(-Sinθ、Cosθ)になることから
という事がわかります。
これを合わせて表現すると
となり、回転行列が求まります。
この計算を何回か繰り返すと、そのうち覚えると思います。
コメント
[…] 5/29 回転行列、拡大縮小行列、平行移動行列 […]
[…] 5/29 回転行列、拡大縮小行列、平行移動行列 […]