主要内容

幾何学的変換の行列表現

幾何学的変換行列を使用してメジのグロバル変換を実行できます。まず,変換行列を定義し,それを使用して幾何学的変換オブジェクトを作成します。次に,幾何学的変換オブジェクトを使用してimwarpを呼び出し、グロ、バル変換を、メ、ジに適用します。例にいては,シンプルな2次元平行移動変換の実行を参照してください。

2次元アフィン変換

この表は,2次元アフィン変換と,各アフィン変換の定義に使用する変換行列をまとめています。2次元アフィン変換の場合は、最後の列に同次座標 [0 0 1] が含まれていなければなりません。

任意の組み合わせの2次元変換行列を使用して,affine2d幾何学的変換オブジェクトを作成します。2次元の平行移動行列および回転行列の組み合わせを使用して,rigid2d幾何学的変換オブジェクトを作成します。

2次元アフィン変換 例(元の▪▪メ▪▪ジと変換された▪▪メ▪▪ジ) 変換行列
平行移動

txx軸に沿って移動を指定します。

tyy軸に沿って移動を指定します。

ピクセル座標の詳細にいては,メ,ジの座標系を参照してください。

スケル

年代xx軸に沿って倍率を指定します。

年代yy軸に沿って倍率を指定します。

せん断

上海xx軸に沿ってせん断係数を指定します。

上海yy軸に沿ってせん断係数を指定します。

回転

は原点を中心とする回転の角度を指定します。

2 次元射影変換

射影変換では▪▪メ▪▪ジの平面を傾けることができます。平行線は消失点に向かって収束し,奥行があるように見えます。

変換は3行3列の行列です。アフィン変換とは異なり,変換行列の最後の列に制約はありません。

2 次元射影変換 変換行列
傾き

1 0 E 0 1 F 0 0 1

EおよびFは消失点に影響を与えます。

EFを大きくすると,消失点が原点に近くなるため,平行線がより速く収束するように見えます。

EFが0と等しい場合,変換はアフィン変換になります。

射影変換は,位置ずれしたメジのレジストレションによく使用されます。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(大小(背景)))

图中包含一个轴对象。axis对象包含一个image类型的对象。

変換行列を作成し,幾何学的変換オブジェクト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(大小(背景)))

图中包含一个轴对象。axis对象包含一个image类型的对象。

回転の後に平行移動

変換の順序を逆にして,最初に回転,次に平行移動を実行します。変換行列の乗算では,回転行列Rが左側,平行移動行列Tが右側にあります。

Rt = r * t;tform_rt = affine2d(RT);[out,out_ref] = imwarp(cb,cb_ref,tform_rt);imshowpair (out_ref,背景,imref2d(大小(背景)))

图中包含一个轴对象。axis对象包含一个image类型的对象。

変換後の。

3次元アフィン変換

次の表は,3次元アフィン変換と,各アフィン変換の定義に使用する変換行列をまとめています。3次元の場合は,@ @。最後の列は[0 0 0 1]を含まなければなりません。

任意の組み合わせの3次元変換行列を使用して,affine3d幾何学的変換オブジェクトを作成します。3次元の平行移動行列および回転行列の組み合わせを使用して,rigid3d幾何学的変換オブジェクトを作成します。

3次元アフィン変換 変換行列
平行移動

1 0 0 0 0 1 0 0 0 0 1 0 t x t y t z 1

スケル

年代 x 0 0 0 0 年代 y 0 0 0 0 年代 z 0 0 0 0 1

せん断

X,yせん断:

x x + 一个 z y y + b z z z

1 0 0 0 0 1 0 0 一个 b 1 0 0 0 0 1

X,zせん断:

x x + 一个 y y y z z + c y

1 0 0 0 一个 1 c 0 0 0 1 0 0 0 0 1

Y, zせん断:

x x y y + b x z z + c x

1 b c 0 0 1 0 0 0 0 1 0 0 0 0 1

回転

X軸周り:

1 0 0 0 0 因为 一个 一个 0 0 一个 因为 一个 0 0 0 0 1

Y軸周り:

因为 一个 0 一个 0 0 1 0 0 一个 0 因为 一个 0 0 0 0 1

Z軸周り:

因为 一个 一个 0 0 年代 n 一个 因为 一个 0 0 0 0 1 0 0 0 0 1

N次元アフィン変換の場合,最後の列は[0 (N, 1);1]を含まなければなりません。imwarpでは3次元を超える変換をサポトしていません。

参考

||||||

関連する例

詳細