2 次元リフティングおよび 3 次元リフティング、ローカル多項式変換、ローラン多項式
2 次元または 3 次元幾何学的変換を実行するには、まず変換に関する情報を格納する幾何学的変換オブジェクトを作成します。次に、変換するイメージと幾何学的変換オブジェクトを関数 imwarp に渡します。オプションで、入力イメージに関する空間参照情報を imwarp に指定できます。

imwarp は、幾何学的変換を使用して、出力イメージの座標を入力イメージの対応する座標にマッピングします (逆方向のマッピング)。次に、imwarp は座標マッピングを使用して入力イメージ内にピクセル値を内挿し、出力ピクセル値を計算します。
幾何学的変換オブジェクトの作成
異なるタイプの幾何学的変換オブジェクトには、変換に関する異なる情報が格納されます。
いくつかのオブジェクトには、特定のタイプの線形幾何学的変換を表す変換行列が格納されます。このようなオブジェクトには、
affinetform2d、affinetform3d、rigidtform2d、rigidtform3d、simtform2d、simtform3d、transltform2d、transltform3d、およびprojtform2dがあります。geometricTransform2dおよびgeometricTransform3dオブジェクトには、逆方向の点単位のマッピング関数、およびオプションで点単位の順方向のマッピング関数が格納されます。PolynomialTransformation2Dオブジェクトには、逆方向のポイント マッピングが 2 次元多項式の形式で格納されます。LocalWeightedMeanTransformation2DおよびPiecewiseLinearTransformation2Dオブジェクトは、さまざまな形式の、局所的に変化する点単位のマッピング関数を表します。
幾何学的変換オブジェクトを作成するには、いくつかの方法があります。
| 幾何学的変換の作成方法 |
|
|
| projective2d |
| 他の幾何学的変換 |
|---|---|---|---|---|---|---|
| 平行移動、回転、またはスケーリング パラメーターの指定 | X | X | ||||
| 変換行列の指定 | X | X | X | X | ||
| 点単位のカスタム マッピング関数の指定 | X | |||||
| コントロール ポイントのペアからの変換の推定 | X (2 次元) | X (2 次元) | X (2 次元) | X | ||
| 類似性の最適化を使用した変換の推定 | X (2 次元) | X (2 次元) | X (2 次元) | |||
| 位相相関を使用した変換の推定 | X (2 次元) | X (2 次元) | ||||
| ランダムなアフィン変換の生成 | X |
平行移動、回転、またはスケーリング パラメーターの指定
平行移動、回転角度、および倍率の量が既知の場合は、これらのパラメーターを指定して変換を作成することができます。
平行移動を指定して、平行移動変換を表す
transltform2dオブジェクトおよびtransltform3dオブジェクトを作成します。平行移動、回転角度、またはその両方を指定して、剛体変換を表す
rigidtform2dオブジェクトおよびrigidtform3dオブジェクトを作成します。平行移動、回転、および等方性倍率の組み合わせを指定して、無反射相似変換を表す
simtform2dオブジェクトおよびsimtform3dオブジェクトを作成します。
次の例では、平行移動および回転角度を定義してから、指定されたパラメーターから rigidtform2d 幾何学的変換オブジェクトを作成します。
theta = 30; translation = [10 20.5]; tform = rigidtform2d(theta,translation)
tform =
rigidtform2d with properties:
Dimensionality: 2
RotationAngle: 30
Translation: [10 20.5000]
R: [2×2 double]
A: [0.8660 -0.5000 10.0000
0.5000 0.8660 20.5000
0 0 1.0000]変換行列の指定
もっと複雑な線形幾何学的変換の場合は、変換を行列として表すことができます。たとえば、射影変換、あるいは鏡映、異方性スケーリング、せん断、または線形変換の成分を含むアフィン変換に行列表現を使用します。変換行列を指定して、affinetform2d、affinetform3d、または projtform2d オブジェクトを作成します。変換行列の作成の詳細については、幾何学的変換の行列表現を参照してください。
次の例では、異方性スケーリングおよび y 軸に関する鏡映の変換行列を定義してから、変換行列から affinetform2d 幾何学的変換オブジェクトを作成します。
scaleX = 0.8; scaleY = 1.5; A = [scaleX 0 0; 0 -scaleY 0; 0 0 1]; tform = affinetform2d(A)
tform =
affinetform2d with properties:
Dimensionality: 2
A: [0.8000 0 0
0 -1.5000 0
0 0 1.0000]点単位のカスタム マッピング関数の指定
逆方向の点単位のマッピング関数がある場合、geometricTransform2d オブジェクトおよび geometricTransform3d オブジェクトをそれぞれ使用して、カスタムの 2 次元および 3 次元幾何学的変換を作成できます。
次の例では、パックされた (x,y) 形式の 2 次元の点を受け入れ、同じ形式の点を返す逆方向のマッピング関数を指定します。その後、この例では逆方向のマッピング関数から geometricTransform2d 幾何学的変換オブジェクトを作成します。
inversefn = @(c) [c(:,1)+c(:,2),c(:,1).^2]
inversefn =
function_handle with value:
@(c)[c(:,1)+c(:,2),c(:,1).^2]tform = geometricTransform2d(inversefn)
tform =
geometricTransform2d with properties:
InverseFcn: [function_handle]
ForwardFcn: []
Dimensionality: 2同様に、次の例では、逆方向のマッピング関数を使用して geometricTransform3d 幾何学的変換オブジェクトを作成します。この例では、パックされた (x,y,z) 形式の 3 次元の点を受け入れて返す逆方向のマッピング関数を指定します。
inversefn = @(c)[c(:,1)+c(:,2),c(:,1)-c(:,2),c(:,3).^2]
inversefn =
function_handle with value:
@(c)[c(:,1)+c(:,2),c(:,1)-c(:,2),c(:,3).^2]tform = geometricTransform3d(inversefn)
tform =
geometricTransform3d with properties:
InverseFcn: [function_handle]
ForwardFcn: []
Dimensionality: 3コントロール ポイントのペアからの変換の推定
幾何学的変換オブジェクトを作成するには、関数 fitgeotform2d にコントロール ポイントのペアを渡します。関数 fitgeotform2d はこれらのポイントから変換を自動的に推定し、幾何学的変換オブジェクトの 1 つを返します。
必要な点の数は、変換の種類によって異なります。たとえば、アフィン変換では各イメージに 3 つの同一線上にない点 (三角形) が必要ですが、射影変換では 4 つの点 (四角形) が必要です。
この例では、2 ペアのコントロール ポイントを定義してから、fitgeotform2d を使用して affinetform2d 幾何学的変換オブジェクトを作成します。
movingPoints = [11 11;21 11; 21 21];
fixedPoints = [51 51;61 51;61 61];
tform = fitgeotform2d(movingPoints,fixedPoints,"affine")tform =
affinetform2d with properties:
Dimensionality: 2
A: [1.0000 0 40.0000
0 1.0000 40.0000
0 0 1.0000]類似性の最適化を使用した変換の推定
固定イメージと、わずかに位置のずれた移動イメージがある場合、関数 imregtform を使用して、イメージの位置を合わせるアフィン幾何学的変換を推定できます。imregtform は、規則的なステップ勾配降下オプティマイザーまたは (1+1) 進化オプティマイザーを使用して、2 つのイメージの平均二乗またはマテス相互情報量の類似度メトリクスを最適化します。詳細については、強度ベースのイメージ レジストレーションのオプティマイザーとメトリクスの作成を参照してください。
位相相関を使用した変換の推定
固定イメージと、わずかに位置のずれた移動イメージがある場合、関数 imregcorr を使用して、イメージの位置合わせを改善するアフィン幾何学的変換を推定できます。類似性の最適化を使用して、結果の変換を調整できます。
ランダムなアフィン変換の生成
関数 randomAffine2d および randomAffine3d を使用することで、ランダム化された変換パラメーターをもつアフィン幾何学的変換を作成できます。これらの関数は、各軸に関する鏡映、回転、せん断、および異方性倍率を含むすべてのアフィン パラメーターをサポートしています。ランダム化されたアフィン変換は、深層学習のデータ拡張手法として一般に使用されています。