• 画像変換
①座標P(X,Y)を、回転行列Rの乗算と移動行列Tの加算を用いて、座標P'(X',Y')に変換
S・cosΘ -S・sinΘ X Tx X'
S・sinΘ S・cosΘ Y Ty Y'
 X'=S(X・cosΘ-Y・sinΘ)+Tx
 Y'=S(X・sinΘ+Y・cosΘ)+Ty

②座標P(X,Y)を変換行列Mを用いて座標P'に変換
アフィン変換
射影変換

  • アフィン変換 
 変換行列M・変換前座標P=変換後座標P'
** ** ** ** **
a b c X X'
d e f Y Y'
0 0 1 1 1
 X'=aX+bY+c×1
 Y'=dX+eY+f×1
 1=0×X+0×Y+1×1

** ** ** ** **
Sx 0 0 X X'
0 Sy 0 Y Y'
0 0 1 1 1
 X'=Sx×X+0×Y+0×1=Sx×X
 Y'=0×X+Sy×Y+0×1=Sy×Y
 1=0×X+0×Y+1×1
  Sx=Syで等方性の拡大縮小
  Sx<0,Sy<0で、Y軸反転,X軸反転

  • 原点中心の回転
** ** ** ** **
cosΘ -sinΘ 0 X X'
sinΘ cosΘ 0 Y Y'
0 0 1 1 1
 X'=cosΘ×X-sinΘ×Y+0×1=X×cosΘ-Y×sinΘ
 Y'=sinΘ×X+cosΘ×Y+0×1=X×sinΘ+Y×cosΘ
 1=0×X+0×Y+1×1
  Θ<0で逆回転

  • Y軸平行のせん断
** ** ** ** **
1 0 0 X X'
tanΘ 1 0 Y Y'
0 0 1 1 1
 X'=1×X+0×Y+0×1=X
 Y'=tanΘ×X+1×Y+0×1=X×tanΘ+Y
 1=0×X+0×Y+1×1

  • X軸平行のせん断
** ** ** ** **
1 tanΘ 0 X X'
0 1 0 Y Y'
0 0 1 1 1
 X'=1×X+tanΘ×Y+0×1=X+Y×tanΘ
 Y'=0×X+1×Y+0×1=Y
 1=0×X+0×Y+1×1

  • 原点からの平行移動
** ** ** ** **
1 0 Tx X X'
0 1 Ty Y Y'
0 0 1 1 1
 X'=1×X+0×Y+Tx×1=X+Tx
 Y'=0×X+1×Y+Ty×1=Y+Ty
 1=0×X+0×Y+1×1

  • 射影変換(ホモグラフィ)
 アフィン変換では、せん断(長方形→平行四辺形)は変形可能だが、長方形→台形への変形できない。
 台形へ変形するには、射影変換が必要。

  • 問題点
 図形の各座標Pに対して、変換行列Mを用いて座標P'を求める方法では、変換後の図形の座標P'が虫食い状態となる。
 実際には、変換後の座標P'に対して変換行列の逆行列M'を用いて、もとの座標Pを参照した方が良い。
 参照する座標Pがない場合は、近傍の座標から補間を行って埋める。
M・P P'
M'・M・P M'・P'
P M'・P'
 M'=Mの逆行列

[アフィン変換]]
射影変換
Direct2D

タグ:

+ タグ編集
  • タグ:
最終更新:2012年07月07日 19:29