ドキュメンテーション

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

imregcorr

位相相関を使用した、2 つの 2 次元イメージの位置を合わせる幾何学的変換の推定

構文

tform = imregcorr(moving,fixed)
tform = imregcorr(moving,fixed,transformtype)
tform = imregcorr(moving,Rmoving,fixed,Rfixed,___)
tform = imregcorr(___,Name,Value,___)

説明

tform = imregcorr(moving,fixed) は、イメージ moving を参照イメージ fixed と位置合わせする幾何学的変換を推定します。この関数は、moving 内のピクセルを fixed 内のピクセルにマッピングする幾何学的変換オブジェクト tform を返します。

tform = imregcorr(moving,fixed,transformtype) は幾何学的変換を推定します。transformtype は変換のタイプを指定する文字ベクトルです。

tform = imregcorr(moving,Rmoving,fixed,Rfixed,___) は、イメージ moving を参照イメージ fixed と位置合わせする幾何学的変換を推定します。RmovingRfixed は、それぞれ moving イメージと fixed イメージに関する空間情報を含む空間参照オブジェクトです。返される変換オブジェクト tform は、ワールド座標系でポイント マッピングを定義します。

tform = imregcorr(___,Name,Value,___) は、レジストレーション アルゴリズムのさまざまな特性を制御する名前と値のペアを使用して、移動イメージを固定イメージにレジストレーションします。

すべて折りたたむ

参照イメージをワークスペースに読み取ります。

fixed  = imread('cameraman.tif');

固定イメージのスケーリングと回転によって、合成の移動イメージを作成します。

theta = 20;
S = 2.3;
tform = affine2d([S.*cosd(theta) -S.*sind(theta) 0; ...
                  S.*sind(theta)  S.*cosd(theta) 0; ...
                  0 0 1]);
moving = imwarp(fixed,tform);
moving = moving + uint8(10*rand(size(moving)));

固定イメージと移動イメージを並べて表示します。

imshowpair(fixed,moving,'montage')

imregcorr を使用して、イメージの位置合わせに必要な変換を推定します。

tformEstimate = imregcorr(moving,fixed);

推定した幾何学的変換を移動イメージに適用します。この例では、'OutputView' パラメーターを使用して、参照イメージと同じサイズで、同じワールド座標範囲をもつレジストレーションされたイメージを取得します。

Rfixed = imref2d(size(fixed));
movingReg = imwarp(moving,tformEstimate,'OutputView',Rfixed);

元のイメージとレジストレーションされたイメージを横に並べて表示して、レジストレーションをチェックします。次に、'falsecolor' オプションを使用して、レジストレーションされたイメージを元のイメージに重ね合わせて表示して、イメージが異なる領域を強調表示します。

figure
imshowpair(fixed,movingReg,'montage');
figure
imshowpair(fixed,movingReg,'falsecolor');

入力引数

すべて折りたたむ

レジストレーションされるイメージ。グレースケール イメージ、バイナリ イメージまたは RGB イメージとして指定します。RGB イメージを指定した場合、imregcorr は、処理前に rgb2gray を使用してグレースケール イメージに変換します。

メモ

moving の縦横比は出力変換 tform に影響します。最適な結果を得るには、正方形イメージを使用してください。

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

ターゲット方向の参照イメージ。グレースケール イメージ、バイナリ イメージまたは RGB イメージとして指定します。RGB イメージを指定した場合、imregcorr は、処理前に rgb2gray を使用してグレースケール イメージに変換します。

メモ

fixed の縦横比は出力変換 tform に影響します。最適な結果を得るには、正方形イメージを使用してください。

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

推定する変換のタイプ。次のいずれかの値に指定します。

説明
'translation'平行移動
'rigid'平行移動と回転
'similarity'平行移動、回転およびスケーリング

'similarity' オプションを使用する場合、位相相関アルゴリズムは固定イメージと移動イメージのスケールの差の一定範囲内でのみスケール不変となります。imregcorr は、探索空間を範囲 [1/4,4] 内のスケールの差に限定します。1/4 未満であるか、4 を超えるスケールの差は、imregcorr では検出されません。

データ型: char

レジストレーションされるイメージに関連付けられている空間参照情報。imref2d タイプの空間参照オブジェクトとして指定します。

参照 (固定) イメージに関連付けられている空間参照情報。imref2d タイプの空間参照オブジェクトとして指定します。

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: tformEstimate = imregcorr(moving,fixed,'Window',true);

すべて折りたたむ

周波数領域におけるスペクトル漏れの効果を抑制するためのウィンドウ処理の使用を制御する論理フラグ。'Window' と論理スカラーで構成されるコンマ区切りのペアとして指定します。true に設定すると、imregcorr はブラックマン ウィンドウを使用してレジストレーション結果の安定性を向上します。イメージ内で位置合わせしようとしている共通の特徴がエッジに沿った向きになっている場合は、'Window'false に設定すると、優れたレジストレーション結果が得られる場合があります。

例: tformEstimate = imregcorr(moving,fixed,'Window',true);

データ型: logical

出力引数

すべて折りたたむ

幾何学的変換。affine2d タイプの幾何学的変換オブジェクトとして返されます。

ヒント

  • イメージのタイプが double である場合は、レジストレーション前に im2single を使用してイメージを single にキャストすることにより、パフォーマンスを向上できます。double 型の入力イメージを使用すると、FFT は double で計算されます。

参照

[1] Reddy, B. S. and Chatterji, B. N., An FFT-Based Technique for Translation, Rotation, and Scale-Invariant Image Registration, IEEE Transactions on Image Processing, Vol. 5, No. 8, August 1996

R2014a で導入

この情報は役に立ちましたか?