Main Content

PolynomialTransformation2D

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

説明

PolynomialTransformation2D オブジェクトは、2 次元多項式幾何学的変換に関する情報を格納し、逆変換を可能にします。

作成

PolynomialTransformation2D オブジェクトは次の方法で作成できます。

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

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

説明

tform = images.geotrans.PolynomialTransformation2D(movingPoints,fixedPoints,degree) は、PolynomialTransformation2D オブジェクトを作成し、Degree プロパティを設定します。この関数は、移動イメージのコントロール ポイント movingPoints を固定イメージのコントロール ポイント fixedPoints にマッピングする多項式係数を推定します。コントロール ポイントは、関数 cpselect を使用して選択できます。

tform = images.geotrans.PolynomialTransformation2D(a,b)PolynomialTransformation2D オブジェクトを作成し、指定された多項式係数を使用して A および B プロパティを設定します。

入力引数

すべて展開する

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

データ型: double | single

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

データ型: 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 として指定します。

オブジェクト関数

outputLimitsFind output spatial limits given input spatial limits
transformPointsInverseApply inverse geometric transformation

すべて折りたたむ

2 次多項式では 6 組のコントロール ポイントが必要です。6 組のコントロール ポイントおよび移動点を選択します。単純化のため、この例では、固定点から水平に 5 ピクセル、垂直に 10 ピクセル平行移動した移動点を選択します。

fixedPoints = [10 20; 10 5; 2 3; 0 5; -5 3; -10 -20];
movingPoints = [15 30; 15 15; 7 13; 5 15; 0 13; -5 -10];

fixedPointsmovingPoints を近似する 2 次多項式変換を推定します。

tformPolynomial = images.geotrans.PolynomialTransformation2D(movingPoints,fixedPoints,2)
tformPolynomial = 
  PolynomialTransformation2D with properties:

    Dimensionality: 2
            Degree: 2
                 A: [1.1102e-16 1.0000 8.1148e-17 3.1692e-15 -6.0409e-16 ... ]
                 B: [1.1842e-16 -8.6803e-16 1.0000 5.5598e-15 ... ]

逆変換により、固定点が移動点にマッピングされることを確認します。

movingPointsEstimated = transformPointsInverse(tformPolynomial,fixedPoints)
movingPointsEstimated = 6×2

   15.0000   30.0000
   15.0000   15.0000
    7.0000   13.0000
    5.0000   15.0000
    0.0000   13.0000
   -5.0000  -10.0000

詳細

すべて展開する

バージョン履歴

R2013b で導入