アフィン変換

シェアする

  • このエントリーをはてなブックマークに追加

画像の拡大縮小、回転、平行移動などをまとめて3×3の行列を使って変換する事をアフィン変換と呼びます。

変換前の座標を(x, y)
変換後の座標を(x’,y’)

とすると、アフィン変換では

アフィン変換

のように実質的には2行3列の行列を使って変換します。

変換前の画像を以下のようにすると、

アフィン変換

各種変換は以下の通りとなります。

拡大縮小

X軸方向の拡大率をSx、Y軸方向の拡大率をSyとすると拡大縮小のアフィン変換は

アフィン変換

と表されます。

例)X軸方向に2倍

アフィン変換

アフィン変換

例)Y軸方向に2倍

アフィン変換

アフィン変換

例)X軸、Y軸方向に2倍

アフィン変換

アフィン変換

例)Y軸方向に-1倍

アフィン変換

アフィン変換

このように、ある軸(上記の例ではX軸)に対して反転する処理の事を鏡映と呼びます。

平行移動

X軸方向にTx、Y軸方向にTyだけ移動するアフィン変換は

アフィン変換

のように表されます。

アフィン変換

回転

原点を中心に反時計回りにθ°回転する時のアフィン変換は

アフィン変換

のように表されます。

アフィン変換

スキュー(せん断)

四角形の画像を平行四辺形に変形する処理をスキューまたはせん断といいます。
このアフィン変換は

アフィン変換

アフィン変換

アフィン変換

アフィン変換

注意点

アフィン変換では任意の3×3(2×3)の行列で表す事ができるので、任意形状に変換できそうにも思えるのですが、四角形が平行四辺形にまでは変形できるものの、台形には変形できないのでご注意願います。
この台形に変形できる処理は射影変換(ホモグラフィ)と呼びます。

アフィン変換

また、実際に画像データをアフィン変換にて変換する場合は、アフィン変換の行列の式の両辺に3×3の逆行列を掛け、変換前の座標(x, y)と変換後の座標(x’,y’)を逆にして、変換後の座標から変換前の座標を求めます。

アフィン変換

このようにして変換すると、変換前の座標は1で割り切れない座標になる場合があるので、biLinear、biCubicなどの補間処理をして、座標と座標の間の輝度値を求めます。

アフィン変換は今回の説明のように、画像を移動、変形させるための手法として説明されますが、もう少し汎用的に座標変換として捉えると応用範囲が広がります。

例えば、データのグラフを表示する時に、横方向、縦方向に拡大/縮小した時に、表示するデータの範囲を求める場合などに応用すると、少し便利です。

画像処理アルゴリズムへ戻る

関連記事

関連記事

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント