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

PolynomialTransformation2D

2 次元多項式幾何学的変換

説明

PolynomialTransformation2D オブジェクトは、2 次元多項式幾何学的変換をカプセル化します。

作成

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

  • 関数 fitgeotrans。2 つのイメージの間でコントロール ポイントのペアをマッピングする幾何学的変換を推定します。

  • ここで記述された関数 images.geotrans.PolynomialTransformation2D。この関数は固定点と移動点の座標、またはフォワード変換および逆変換の既知の多項係数を使用して PolynomialTransformation2D オブジェクトを作成します。

説明

tform = images.geotrans.PolynomialTransformation2D(movingPoints,fixedPoints,degree) は、PolynomialTransformation2D オブジェクトを作成し、Degree プロパティを設定します。この関数は多項式係数 AB を、行列 movingPointsfixedPoints から推定します。これらの行列は、それぞれ移動イメージと固定イメージ内の一致するコントロール ポイントを定義します。

tform = images.geotrans.PolynomialTransformation2D(a,b) は、PolynomialTransformation2D オブジェクトを作成し、A および B プロパティを設定します。

入力引数

すべて展開する

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

データ型: double | single

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

データ型: double | single

プロパティ

すべて展開する

逆変換における U を決定するために使用される多項式係数。n 要素ベクトルとして指定します。次数が 2、3 および 4 の多項式では、n はそれぞれ 6、10 および 15 になります。

2 次 (次数 2 の) 多項式係数ベクトル A の順序は次のようになります。

U = A(1) + A(2).*X + A(3).*Y + A(4).*X.*Y + A(5).*X.^2 + A(6).*Y.^2

3 次 (次数 3 の) 多項式係数ベクトルには、以下の項が追加されます。

... + A(7).*X.^2.*Y + A(8).*X.*Y.^2 + A(9).*X.^3 + A(10).*Y.^3

4 次 (次数 4 の) 多項式係数ベクトルには、以下の項が追加されます。

... + A(11).*X.^3.*Y + A(12).*X.^2.*Y.^2 + A(12).*X.*Y.^3 + A(14).*X.^3 + A(15).*Y.^4

データ型: double | single

逆変換における V を決定するために使用される多項式係数。n 要素ベクトルとして指定します。次数が 2、3 および 4 の多項式では、n はそれぞれ 6、10 および 15 になります。

2 次 (次数 2 の) 多項式係数ベクトル B の順序は次のようになります。

V = B(1) + B(2).*X + B(3).*Y + B(4).*X.*Y + B(5).*X.^2 + B(6).*Y.^2

3 次 (次数 3 の) 多項式係数ベクトルには、以下の項が追加されます。

... + B(7).*X.^2.*Y + B(8).*X.*Y.^2 + B(9).*X.^3 + B(10).*Y.^3

4 次 (次数 4 の) 多項式係数ベクトルには、以下の項が追加されます。

... + B(11).*X.^3.*Y + B(12).*X.^2.*Y.^2 + B(12).*X.*Y.^3 + B(14).*X.^3 + B(15).*Y.^4

データ型: double | single

多項式変換の次数。スカラー値 23 または 4 として指定します。

入力点と出力点の両方の幾何学的変換の次元。値 2 として指定します。

オブジェクト関数

outputLimits入力空間範囲に基づく出力空間範囲の特定
transformPointsInverse幾何学的逆変換の適用

すべて折りたたむ

2 次多項式変換を、2 次元アフィン変換によって実際に関連付けられている一連の固定および移動コントロール ポイントに近似します。

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

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

コントロール ポイントの任意の 6 組を選択します。2 次多項式では 6 組のコントロール ポイントが必要です。

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

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

movingPoints = transformPointsForward(tformAffine,fixedPoints);

fixedPointsmovingPoints を近似する 2 次の PolynomialTransformation2D 変換を推定します。

tformPolynomial = images.geotrans.PolynomialTransformation2D(movingPoints,fixedPoints,2);

コントロール ポイントにおける PolynomialTransformation2D 変換の近似を検証します。

movingPointsEstimated = transformPointsInverse(tformPolynomial,fixedPoints);
errorInFit = hypot(movingPointsEstimated(:,1)-movingPoints(:,1),...
                   movingPointsEstimated(:,2)-movingPoints(:,2))

詳細

すべて展開する

R2013b で導入