このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
2次元または3次元幾何学的変換を実行するには,まず変換に関する情報を格納する幾何学的変換オブジェクトを作成します。次に,変換するイメージと幾何学的変換オブジェクトを関数imwarp
に渡します。オプションで,入力イメージに関する空間参照情報をimwarp
に指定できます。
異なるタイプの幾何学的変換オブジェクトには,変換に関する異なる情報が格納されます。
rigid2d
、affine2d
、projective2d
、rigid3d
,およびaffine3d
オブジェクトには,変換行列が格納されます。
geometricTransform2d
およびgeometricTransform3d
オブジェクトには,点単位の逆マッピング関数,およびオプションで点単位のフォワードマッピング関数が格納されます。
LocalWeightedMeanTransformation2D
、PiecewiseLinearTransformation2D
、PolynomialTransformation2D
などのオブジェクトを含む他の変換タイプでは,コントロールポイントのペア間のマッピングが格納されます。
幾何学的変換オブジェクトを作成するには,いくつかの方法があります。
変換オブジェクトの作成方法 | affine2d |
affine3d |
|
projective2d |
|
他の変換オブジェクト |
---|---|---|---|---|---|---|
変換行列の定義 | X | X | X | X | ||
点単位のカスタムマッピング関数の定義 | X | |||||
コントロールポイントのペアからの変換の推定 | X | X | X | |||
類似性の最適化を使用した変換の推定 | X | X | ||||
位相相関を使用した変換の推定 | X |
実行する幾何学的変換の変換行列が既知の場合は,rigid2d
、affine2d
、projective2d
、rigid3d
,またはaffine3d
幾何学的変換オブジェクトを直接作成できます。変換行列の作成の詳細については,幾何学的変換の行列表現を参照してください。
次の例では2次元平行移動の変換行列を定義し,affine2d
幾何学的変換オブジェクトを作成します。
Xform = [1 0 0 1 0 40 40 1];tform_translate = affine2d(变换)
tform_translate = affine2d with properties: T: [3x3 double] dimension: 2
点単位の逆マッピング関数がある場合,geometricTransform2d
オブジェクトおよびgeometricTransform3d
オブジェクトをそれぞれ使用して,カスタムの2次元および3次元幾何学的変換を定義できます。
次の例では,パックされた(x, y)形式の2次元の点を受け入れ,同じ形式の点を返す逆マッピング関数を指定します。その後,この例ではgeometricTransform2d
カスタム幾何学的変換オブジェクトを作成します。
逆链= @(c) [c(:,1)+c(:,2),c(:,1).^2]
inversefn = function_handle价值:@ (c) [c (: 1) + c (:, 2), c(: 1) ^ 2]。
tform = geometricTransform2d (inversefn)
ForwardFcn:[]维数:2
同様に,次の例では,逆マッピング関数を使用してgeometricTransform3d
カスタム幾何学的変換オブジェクトを作成します。この例では,パックされた(x, y, z)形式の3次元の点を受け入れて返す逆マッピング関数を指定します。
inversefn = @ (c) [c (: 1) + c (:, 2), c (: 1) - c (:, 2), c(:, 3) ^ 2]。
inversefn = function_handle价值:@ (c) [c (: 1) + c (:, 2), c (: 1) - c (:, 2), c(:, 3) ^ 2]。
tform = geometricTransform3d (inversefn)
ForwardFcn:[]维数:3
幾何学的変換オブジェクトを作成するには,関数fitgeotrans
にコントロールポイントのペアを2セット渡します。関数fitgeotrans
はこれらのポイントから変換を自動的に推定し,幾何学的変換オブジェクトの1つを返します。
必要な点の数は,変換の種類によって異なります。たとえば,アフィン変換では各イメージに3つの同一線上にない点(三角形)が必要ですが,射影変換では4つの点(四角形)が必要です。
この例では2セットのコントロールポイントをfitgeotrans
に渡し,幾何学的変換オブジェクトaffine2d
が返されます。
[11 11;21 11;21日21];fixedPoints = [51 51;61 51;61 61];tform_cpp = fitgeotrans (movingPoints定点,仿射的)
tform_cpp = affine2d with properties: T: [3x3 double] dimension: 2
固定イメージと,わずかに位置のずれた移動イメージがある場合,関数imregtform
を使用して,イメージの位置を合わせるアフィン幾何学的変換を推定できます。imregtform
は,規則的なステップ勾配降下オプティマイザーまたは(1 + 1)進化オプティマイザーを使用して,2つのイメージの平均二乗またはマテス相互情報量の類似度メトリクスを最適化します。詳細については,強度ベースのイメージレジストレーションのオプティマイザーとメトリクスの作成を参照してください。
固定イメージと,わずかに位置のずれた移動イメージがある場合,関数imregcorr
を使用して,イメージの位置合わせを改善するアフィン幾何学的変換を推定できます。類似性の最適化を使用して,結果の変換を調整できます。
幾何学的変換オブジェクトに変換を定義したら,関数imwarp
を使用して変換を実行します。関数を呼び出すときに、変換するイメージと幾何学的変換オブジェクトを指定します。
imwarp
は,幾何学的変換を使用して,出力イメージの座標を入力イメージの対応する座標にマッピングします(逆マッピング)。次に,imwarp
は座標マッピングを使用して入力イメージ内にピクセル値を内挿し,出力ピクセル値を計算します。
imwarp
|fitgeotrans
|affine2d
|affine3d
|rigid2d
|rigid3d
|projective2d
|geometricTransform2d
|geometricTransform3d