幾何学的変換の行列表現
線形幾何学的変換は数値行列として表すことができます。平行移動、スケーリング、回転、反転などの変換の各種類は、要素が特定のパターンに従う行列を使用して定義されます。変換を表す行列の合成を取ることにより、複数の変換を組み合わせることができます。詳細については、Create Composite 2-D Affine Transformationsを参照してください。
2 次元アフィン変換
この表は、2 次元アフィン変換と、各アフィン変換の定義に使用する変換行列をまとめています。2 次元アフィン変換の場合は、最後の行が [0 0 1] でなければなりません。
2 次元の平行移動行列の組み合わせを使用して、平行移動変換を表す
transltform2dオブジェクトを作成します。2 次元の平行移動行列と回転行列の組み合わせを使用して、無反射剛体変換を表す
rigidtform2dオブジェクトを作成します。2 次元の平行移動行列、回転行列、スケーリング行列の組み合わせを使用して、無反射相似変換を表す
simtform2dオブジェクトを作成します。任意の組み合わせの 2 次元変換行列を使用して、一般的なアフィン変換を表す
affinetform2dオブジェクトを作成します。
| 2 次元アフィン変換 | 例 (元のイメージと変換されたイメージ) | 変換行列 | |
|---|---|---|---|
| 平行移動 |
| tx は "x" 軸に沿って移動を指定します。 ty は "y" 軸に沿って移動を指定します。 ピクセル座標の詳細については、イメージの座標系を参照してください。 | |
| スケール | | sx は "x" 軸に沿って倍率を指定します。 sy は "y" 軸に沿って倍率を指定します。 | |
| せん断 | | shx は "x" 軸に沿ってせん断係数を指定します。 shy は "y" 軸に沿ってせん断係数を指定します。 | |
| 反転 |
| φ は、反転の軸の角度 (度数) を指定します。 よく使われる反転は、垂直方向の反転と水平方向の反転の 2 つです。垂直方向の反転は、x 軸を中心とする反転です。このため、φ は 0 であり、反転行列は以下のように単純化されます。
水平方向の反転は、y 軸を中心とする反転です。このため、φ は 90 であり、反転行列は以下のように単純化されます。
| |
| 回転 | | θ は原点を中心とする回転の角度 (度数) を指定します。 | |
2 次元射影変換
射影変換ではイメージの平面を傾けることができます。平行線は消失点に向かって収束し、奥行があるように見えます。
変換は 3 行 3 列の行列です。アフィン変換とは異なり、変換行列の最後の行に制約はありません。2 次元のアフィン変換行列と射影変換行列の任意の合成を使用して、一般的な射影変換を表す projtform2d オブジェクトを作成します。
| 2 次元射影変換 | 例 | 変換行列 | |
|---|---|---|---|
| 傾き |
|
| E および F は消失点に影響を与えます。 E と F を大きくすると、消失点が原点に近くなるため、平行線がより速く収束するように見えます。 |
3 次元アフィン変換
この表は、3 次元アフィン変換と、各アフィン変換の定義に使用する変換行列をまとめています。3 次元の場合は、イメージの回転方法またはせん断方法に応じて複数の行列があります。3 次元アフィン変換の場合は、最後の行が [0 0 0 1] でなければなりません。
3 次元の平行移動行列の組み合わせを使用して、平行移動変換を表す
transltform3dオブジェクトを作成します。3 次元の平行移動行列と回転行列の組み合わせを使用して、無反射剛体変換を表す
rigidtform3dオブジェクトを作成します。3 次元の平行移動行列、回転行列、スケーリング行列の組み合わせを使用して、無反射相似変換を表す
simtform3dオブジェクトを作成します。任意の組み合わせの 3 次元変換行列を使用して、一般的なアフィン変換を表す
affinetform3dオブジェクトを作成します。
| 3 次元アフィン変換 | 変換行列 | ||
|---|---|---|---|
| 平行移動 | x、y、z の方向に、それぞれ tx、ty、tz の量での平行移動
| ||
| スケール | x、y、z の方向に、それぞれ sx、sy、sz の倍率でのスケーリング
| ||
| せん断 | y-z 平面内でのせん断
条件
| x-z 平面内でのせん断
条件
| x-y 平面内でのせん断
条件
|
| 反転 | y-z 平面上での x 座標の符号反転による反転
| x-z 平面上での y 座標の符号反転による反転
| x-y 平面上での z 座標の符号反転による反転
|
| 回転 | y-z 平面内での x 軸を中心とした角度 θx (度数) の回転
| x-z 平面内での y 軸を中心とした角度 θy (度数) の回転
| x-y 平面内での z 軸を中心とした角度 θz (度数) の回転
|
3 次元射影変換と N 次元変換
関数 imwarp は、3 次元射影変換、または N 次元アフィンおよび射影変換をサポートしていません。その代わりに、関数 maketform を使用して幾何学的変換行列から空間変換構造体を作成できます。作成後、関数 tformarray を使用してその変換をイメージに適用します。詳細については、N 次元空間変換を参照してください。
変換行列の次元は、(N+1) 行 (N+1) 列でなければなりません。関数 maketform および tformarray は、右から乗算する行列規則を使用します。右から乗算する規則の幾何学的変換行列は、左から乗算する規則の行列の転置です。このため、N 次元アフィン変換行列の場合、最後の列は [zeros(N,1); 1] を含まなければなりません。最後の行の値には制約がありません。
参考
imwarp | fitgeotform2d | affinetform2d | affinetform3d | projtform2d





