Main Content

PiecewiseLinearTransformation2D

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

説明

PiecewiseLinearTransformation2D オブジェクトは、2 次元区分的線形幾何学的変換に関する情報を格納し、逆変換を可能にします。

作成

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

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

  • ここで説明する関数 images.geotrans.PiecewiseLinearTransformation2D。この関数は固定点と移動点の座標を使用して PiecewiseLinearTransformation2D オブジェクトを作成します。

説明

tform = images.geotrans.PiecewiseLinearTransformation2D(movingPoints,fixedPoints) は、区分的線形変換を使用して、移動イメージ内のコントロール ポイント movingPoints を固定イメージ内のコントロール ポイント fixedPoints にマッピングする PiecewiseLinearTransformation2D オブジェクトを作成します。コントロール ポイントは、関数 cpselect を使用して選択できます。

入力引数

すべて展開する

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

データ型: double | single

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

データ型: double | single

プロパティ

すべて展開する

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

オブジェクト関数

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

すべて折りたたむ

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

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

fixedPointsmovingPoints を近似する区分的線形変換を推定します。

tform = images.geotrans.PiecewiseLinearTransformation2D(movingPoints,fixedPoints)
tform = 
  PiecewiseLinearTransformation2D with properties:

    Dimensionality: 2

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

movingPointsComputed = transformPointsInverse(tform,fixedPoints)
movingPointsComputed = 6×2

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

アルゴリズム

区分的線形変換では、イメージの各三角形領域に線形 (アフィン) 変換が個別に適用されます[1]

  1. 固定コントロール ポイントの Delaunay 三角形分割を検出します。詳細については、Delaunay 三角形分割の使用を参照してください。

  2. 各三角形の 3 個の頂点を使用して、固定座標から移動座標へのアフィン マッピングを推測します。このマッピングは各三角形に対してアフィンであり、コントロール ポイント間で連続的ですが、連続的に微分可能ではありません。

少なくとも 4 つの同一線上にないコントロール ポイントのペアを指定して、個々のマッピングをもつ 2 つ以上の三角形を定義しなければなりません。コントロール ポイントのペアの指定が多いほど、三角形領域をより多く生成できます。

PiecewiseLinearTransformation2D オブジェクトは、重なった縮退三角形の中央の頂点となるコントロール ポイントを除去します。movingPoints および fixedPoints にコントロール ポイントが同じ順序でリストされていない場合、このオブジェクトはすべての重なった三角形を除去できない可能性があります。このエラーを解決するには、移動イメージと固定イメージ内のコントロール ポイントが同一の順序で並ぶようにします。

参照

[1] Goshtasby, Ardeshir. “Piecewise Linear Mapping Functions for Image Registration.” Pattern Recognition 19, no. 6 (January 1986): 459–66. https://doi.org/10.1016/0031-3203(86)90044-0.

バージョン履歴

R2013b で導入