幾何学的変換の行列表現
幾何学的変換行列を使用してメジのグロバル変換を実行できます。まず,変換行列を定義し,それを使用して幾何学的変換オブジェクトを作成します。次に,幾何学的変換オブジェクトを使用してimwarp
を呼び出し、グロ、バル変換を、メ、ジに適用します。例にいては,シンプルな2次元平行移動変換の実行を参照してください。
2次元アフィン変換
この表は,2次元アフィン変換と,各アフィン変換の定義に使用する変換行列をまとめています。2次元アフィン変換の場合は、最後の列に同次座標 [0 0 1] が含まれていなければなりません。
任意の組み合わせの2次元変換行列を使用して,affine2d
幾何学的変換オブジェクトを作成します。2次元の平行移動行列および回転行列の組み合わせを使用して,rigid2d
幾何学的変換オブジェクトを作成します。
2次元アフィン変換 | 例(元の▪▪メ▪▪ジと変換された▪▪メ▪▪ジ) | 変換行列 | |
---|---|---|---|
平行移動 |
ピクセル座標の詳細にいては,メ,ジの座標系を参照してください。 |
||
スケル |
|
||
せん断 |
|
||
回転 |
|
2 次元射影変換
射影変換では▪▪メ▪▪ジの平面を傾けることができます。平行線は消失点に向かって収束し,奥行があるように見えます。
変換は3行3列の行列です。アフィン変換とは異なり,変換行列の最後の列に制約はありません。
2 次元射影変換 | 例 | 変換行列 | |
---|---|---|---|
傾き |
|
|
射影変換は,位置ずれしたメジのレジストレションによく使用されます。2 .cpselect
を使用してコントロルポントのペアを選択します。次に,fitgeotrans
を使用してtransformationType
を“射影”
に設定し,射影変換行列をコントロ,ルポ,ントのペアに近似します。これによって自動的に幾何学的変換オブジェクトprojective2d
が作成されます。変換行列はprojective2d
オブジェクトのプロパティとして保存されます。その結果,imwarp
を使用すると,他の。
2次元合成アフィン変換の作成
行列乗算を使用すると,複数の変換を1の行列に結合できます。行列乗算の順序が重要です。
この例では,2次元の平行移動と回転を合成した変換を作成する方法を説明します。
変換を行うチェッカボドメジを作成します。また,この。
Cb = checkerboard(4,2);Cb_ref = imref2d(size(cb));
。チェッカ,ボ,ドを背景の上に重ね,チェッカ,ボ,ドの位置を緑色で強調表示します。
背景=零(150);imshowpair (cb、cb_ref、背景、imref2d(大小(背景)))
変換行列を作成し,幾何学的変換オブジェクトaffine2d
として保存します。この変換では,。
T = [1 00;0 10;100 0 1];tform_t = affine2d(T);
回転行列を作成し,幾何学的変換オブジェクトaffine2d
として保存します。この変換では,原点を中心としてイメージを時計回りに30度回転します。
R = [cosd(30) sind(30) 0;-sind(30) cosd(30) 0;0 0 1];tform_r = affine2d(R);
平行移動の後に回転
最初に平行移動を,次に回転を実行します。変換行列の乗算では,平行移動行列T
が左側,回転行列R
が右側にあります。
Tr = t * r;tform_tr = affine2d(TR);[out,out_ref] = imwarp(cb,cb_ref,tform_tr);imshowpair (out_ref,背景,imref2d(大小(背景)))
回転の後に平行移動
変換の順序を逆にして,最初に回転,次に平行移動を実行します。変換行列の乗算では,回転行列R
が左側,平行移動行列T
が右側にあります。
Rt = r * t;tform_rt = affine2d(RT);[out,out_ref] = imwarp(cb,cb_ref,tform_rt);imshowpair (out_ref,背景,imref2d(大小(背景)))
変換後の。
3次元アフィン変換
次の表は,3次元アフィン変換と,各アフィン変換の定義に使用する変換行列をまとめています。3次元の場合は,@ @。最後の列は[0 0 0 1]を含まなければなりません。
任意の組み合わせの3次元変換行列を使用して,affine3d
幾何学的変換オブジェクトを作成します。3次元の平行移動行列および回転行列の組み合わせを使用して,rigid3d
幾何学的変換オブジェクトを作成します。
3次元アフィン変換 | 変換行列 | ||
---|---|---|---|
平行移動 |
|
||
スケル |
|
||
せん断 | X,yせん断:
|
X,zせん断:
|
Y, zせん断:
|
回転 | X軸周り:
|
Y軸周り:
|
Z軸周り:
|
N次元アフィン変換の場合,最後の列は[0 (N, 1);1]
を含まなければなりません。imwarp
では3次元を超える変換をサポトしていません。
参考
imwarp
|fitgeotrans
|affine2d
|affine3d
|rigid2d
|rigid3d
|projective2d