ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

images.geotrans.PiecewiseLinearTransformation2D クラス

パッケージ: images.geotrans
スーパークラス:

2 次元区分的線形幾何学的変換

説明

PiecewiseLinearTransformation2D オブジェクトは、2 次元区分的線形幾何学的変換をカプセル化します。

PiecewiseLinearTransformation2D オブジェクトは以下の方法を使用して作成できます。

  • fitgeotrans — 区分的線形変換を使用してコントロール ポイントの組をマッピングする PiecewiseLinearTransformation2D オブジェクトを返す

  • PiecewiseLinearTransformation2D クラス コンストラクター

構築

tform = images.geotrans.PiecewiseLinearTransformation2D(movingPoints,fixedPoints) は、それぞれ移動イメージと固定イメージ内の一致するコントロール ポイントを定義する m 行 2 列の行列 movingPointsfixedPoints を受け取って、PiecewiseLinearTransformation2D オブジェクトを作成します。区分的線形変換は、平面を領域に分割し、各領域のコントロール ポイント マッピングに異なるアフィン変換を使用してマッピングを作成します。

入力引数

すべて展開する

移動イメージ内のコントロール ポイントの x 座標と y 座標。m 行 2 列の行列として指定します。

データ型: double | single

固定イメージ内のコントロール ポイントの x 座標と y 座標。m 行 2 列の行列として指定します。

データ型: double | single

プロパティ

すべて展開する

入力点と出力点の両方の幾何学的変換の次元を表します。

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、MATLAB® ドキュメンテーションの「オブジェクトのコピー」 (MATLAB)を参照してください。

すべて展開する

区分的線形変換を、領域全体に対する単一のグローバル affine2d 変換によって実際に関連付けられている固定コントロール ポイントと移動コントロール ポイントのセットに近似します。

2 次元アフィン変換を作成します。

theta = 10;
tformAffine = affine2d([cosd(theta) -sind(theta) 0; sind(theta) cosd(theta) 0; 0 0 1])
tformAffine = 

  affine2d with properties:

                 T: [3x3 double]
    Dimensionality: 2

任意のコントロール ポイントを 6 組選択します。

fixedPoints = [10 20; 10 5; 2 3; 0 5; -5 3; -10 -20];

フォワード幾何学的変換を適用して固定点をマップし、幾何学的変換で関連付けられている固定点と移動点の効果を得ます。

movingPoints = transformPointsForward(tformAffine,fixedPoints)
movingPoints =

   13.3210   17.9597
   10.7163    3.1876
    2.4906    2.6071
    0.8682    4.9240
   -4.4031    3.8227
  -13.3210  -17.9597

movingPointsfixedPoints にマップする区分的線形変換を推定します。

tformPiecewiseLinear = images.geotrans.PiecewiseLinearTransformation2D(movingPoints,fixedPoints)
tformPiecewiseLinear = 

  PiecewiseLinearTransformation2D with properties:

    Dimensionality: 2

コントロール ポイントにおける PiecewiseLinearTransformation2D オブジェクトの近似を検証します。

movingPointsComputed = transformPointsInverse(tformPiecewiseLinear,fixedPoints);
 
errorInFit = hypot(movingPointsComputed(:,1)-movingPoints(:,1),...
                   movingPointsComputed(:,2)-movingPoints(:,2))
errorInFit =

   1.0e-15 *

         0
         0
    0.4441
         0
         0
         0
この情報は役に立ちましたか?