「画像変換」の編集履歴(バックアップ)一覧はこちら
画像変換 - (2012/07/07 (土) 19:27:44) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
・画像変換
座標P(X,Y)を変換行列Mを用いて座標P'に変換
|┌|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
----
・アフィン変換
変換行列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]]
----
・画像変換
座標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]]
----