ドキュメンテーション

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

images.geotrans.LocalWeightedMeanTransformation2D クラス

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

2 次元局所重み付き平均幾何学的変換

説明

LocalWeightedMeanTransformation2D オブジェクトは、2 次元局所重み付き平均幾何学的変換をカプセル化します。

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

  • fitgeotrans — 局所重み付き平均変換を使用してコントロール ポイントの組をマッピングする LocalWeightedMeanTransformation2D オブジェクトを返す

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

構築

tform = images.geotrans.LocalWeightedMeanTransformation2D(movingPoints,fixedPoints,n) は、それぞれ移動イメージと固定イメージ内の一致するコントロール ポイントを定義する m 行 2 列の行列 movingPointsfixedPoints を受け取って、LocalWeightedMeanTransformation2D オブジェクトを作成します。局所重み付き平均変換が、近傍のコントロール ポイントを使用して各コントロール ポイントにおける多項式を推定し、マッピングを行います。任意の位置でのマッピングは、これらの多項式の加重平均に依存します。n 個の最近傍点を使用して、コントロール ポイントの各組に対して 2 次多項式変換が推定されます。n には最小で 6 を指定できますが、値を小さくすると条件の悪い多項式が生成される可能性があります。

入力引数

すべて展開する

移動イメージ内のコントロール ポイントの x 座標と y 座標。m 行 2 列の行列として指定します。コントロール ポイント数 m は n 以上でなければなりません。

データ型: double | single

固定イメージ内のコントロール ポイントの x 座標と y 座標。m 行 2 列の行列として指定します。コントロール ポイント数 m は n 以上でなければなりません。

データ型: double | single

局所重み付き平均の計算に使用する点の数。数値として指定します。n には最小で 6 を指定できますが、n の値を小さくすると条件の悪い多項式が生成される可能性があります。

データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64

プロパティ

すべて展開する

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

コピーのセマンティクス

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

すべて展開する

局所重み付き平均変換を、平面全体のグローバル 2 次多項式変換によって実際に関連付けられている固定コントロール ポイントと移動コントロール ポイントのセットに近似します。

変数を設定します。

x = [10, 12, 17, 14, 7, 10];
y = [8, 2, 6, 10, 20, 4];
 
a = [1 2 3 4 5 6];
b = [2.3 3 4 5 6 7.5];
 
u = a(1) + a(2).*x + a(3).*y + a(4) .*x.*y + a(5).*x.^2 + a(6).*y.^2;
v = b(1) + b(2).*x + b(3).*y + b(4) .*x.*y + b(5).*x.^2 + b(6).*y.^2;
 
movingPoints = [u',v'];
fixedPoints = [x',y'];

局所重み付き平均変換を点に近似します。

tformLocalWeightedMean = images.geotrans.LocalWeightedMeanTransformation2D(movingPoints,fixedPoints,6);

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

movingPointsComputed = transformPointsInverse(tformLocalWeightedMean,fixedPoints);
 
errorInFit = hypot(movingPointsComputed(:,1)-movingPoints(:,1),...
                       movingPointsComputed(:,2)-movingPoints(:,2))
この情報は役に立ちましたか?