ドキュメンテーション

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

fitgeotrans

幾何学的変換のコントロール ポイントのペアへの近似

説明

tform = fitgeotrans(movingPoints,fixedPoints,transformationType) はコントロール ポイントのペア movingPoints および fixedPoints を受け取り、これらを使用して transformationType で指定される幾何学的変換を推定します。

tform = fitgeotrans(movingPoints,fixedPoints,'polynomial',degree) は、PolynomialTransformation2D オブジェクトをコントロール ポイントのペア movingPoints および fixedPoints に近似します。多項式変換の次数 degree を指定します。2、3 または 4 を使用できます。

tform = fitgeotrans(movingPoints,fixedPoints,'pwl') は、PiecewiseLinearTransformation2D オブジェクトをコントロール ポイントのペア movingPoints および fixedPoints に近似します。この変換は平面を局所区分的線形領域に分割してコントロール ポイントをマッピングします。局所領域ごとに異なるアフィン変換でコントロール ポイントがマッピングされます。

tform = fitgeotrans(movingPoints,fixedPoints,'lwm',n) は、LocalWeightedMeanTransformation2D オブジェクトをコントロール ポイントのペア movingPoints および fixedPoints に近似します。局所重み付き平均変換が、近傍のコントロール ポイントを使用して各コントロール ポイントにおける多項式を推定し、マッピングを行います。任意の位置でのマッピングは、これらの多項式の加重平均に依存します。n 個の最近傍点を使用して、コントロール ポイントの各組に対し 2 次多項式が推定されます。

すべて折りたたむ

この例では、2 つのイメージの位置合わせに使用する幾何学的変換を作成する方法を説明します。

チェッカーボードのイメージを作成し、このイメージを回転して、位置のずれたイメージを作成します。

I = checkerboard(40);
J = imrotate(I,30);
imshowpair(I,J,'montage')

固定イメージ (チェッカーボード) と移動イメージ (回転したチェッカーボード) にいくつかの一致させるコントロール ポイントを定義します。コントロール ポイント選択ツールを使用して対話的にポイントを定義できます。

fixedPoints = [41 41; 281 161];
movingPoints = [56 175; 324 160];

2 つのイメージの位置合わせに使用する幾何学的変換を作成します。変換は affine2d 幾何学的変換オブジェクトとして返されます。

tform = fitgeotrans(movingPoints,fixedPoints,'NonreflectiveSimilarity')
tform = 
  affine2d with properties:

    Dimensionality: 2
                 T: [3x3 double]

tform 推定を使用して、回転したイメージをリサンプルし、固定イメージにレジストレーションします。レジストレーションの誤差は、フォールス カラーのオーバーレイ イメージ内で緑とマゼンタの色領域として表示されます。このエラーの原因は、コントロール ポイントが正確に一致していないためです。

Jregistered = imwarp(J,tform,'OutputView',imref2d(size(I)));
figure
imshowpair(I,Jregistered)

x 軸に平行な単位ベクトルがどのように回転および伸長したかを確認することで、変換の角度とスケールを復元します。

u = [0 1]; 
v = [0 0]; 
[x, y] = transformPointsForward(tform, u, v); 
dx = x(2) - x(1); 
dy = y(2) - y(1); 
angle = (180/pi) * atan2(dy, dx) 
angle = 29.7686
scale = 1 / sqrt(dx^2 + dy^2)
scale = 1.0003

入力引数

すべて折りたたむ

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

例: movingPoints = [11 11; 41 71];

データ型: double | single

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

例: fixedPoints = [14 44; 70 81];

データ型: double | single

変換タイプ。'nonreflectivesimilarity''similarity''affine' または 'projective' のいずれかに指定します。詳細は、変換タイプを参照してください。

データ型: char | string

多項式の次数。整数 2、3 または 4 を指定します。

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

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

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

出力引数

すべて折りたたむ

変換。変換オブジェクトとして返されます。オブジェクトのタイプは変換タイプによって異なります。たとえば、変換タイプ 'affine' を指定した場合、tformaffine2d オブジェクトになります。'pwl' を指定すると、tformimage.geotrans.PiecewiseLinearTransformation2d オブジェクトになります。

詳細

すべて折りたたむ

変換タイプ

次の表は、fitgeotrans によってサポートされているすべての変換タイプを複雑度の順にまとめています。

変換タイプ

説明コントロール ポイントのペアの最小数
'nonreflective similarity'移動イメージ内の形状は変更されていないが、平行移動、回転、およびスケーリングの組み合わせによってイメージの歪みが生じている場合は、この変換を使用します。直線は直線のまま、平行線は平行のままです。2

'similarity''nonreflective similarity' にオプションの鏡映が追加されたものと同じです。3

'affine'移動イメージ内の形状がせん断を示す場合は、この変換を使用します。直線は直線のまま、平行線は平行のままですが、四角形は平行四辺形になります。3

'projective'シーンが傾いて見える場合は、この変換を使用します。直線は直線のままですが、平行線は消失点に向かって収束します。4

'polynomial'イメージ内のオブジェクトが湾曲している場合は、この変換を使用します。多項式の次数が高いほど、近似度も高くなりますが、結果に含まれる曲線の数が固定イメージより多くなる場合があります。

6 (2 次)

10 (3 次)

15 (4 次)

'pwl'イメージの部分ごとに異なる歪みがあるように見える場合は、この変換 (区分的線形) を使用します。4

'lwm'歪みが局所的に変化し、区分的な線形が十分でない場合は、この変換 (局所重み付き平均) を使用します。6 (12 を推奨)

参照

[1] Goshtasby, Ardeshir, "Piecewise linear mapping functions for image registration," Pattern Recognition, Vol. 19, 1986, pp. 459-466.

[2] Goshtasby, Ardeshir, "Image registration by local approximation methods," Image and Vision Computing, Vol. 6, 1988, pp. 255-261.

拡張機能

R2013b で導入