Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

imregcorr

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

説明

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

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

また、tform = imregcorr(___,transformType) は変換タイプ transformType を指定します。

また、tform = imregcorr(___,'Window',window) は周波数領域でウィンドウ処理を実施するかどうかを指定します。レジストレーション結果の安定性を向上するには、windowtrue と指定します。ただし、イメージ内の共通の特徴がエッジに沿った向きになっている場合は、windowfalse に設定することで優れたレジストレーション結果が得られる場合があります。

また、[tform,peakcorr] = imregcorr(___) は、2 つのイメージ間の位相差のピーク相関 peakcorr を返します。

すべて折りたたむ

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

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')

Figure contains an axes object. The axes object contains an object of type image.

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

tformEstimate = imregcorr(moving,fixed);

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

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

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

imshowpair(fixed,movingReg,'montage')

Figure contains an axes object. The axes object contains an object of type image.

imshowpair(fixed,movingReg,'falsecolor');

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

レジストレーションされるイメージ。グレースケール イメージ、バイナリ イメージまたは 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 | string

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

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

周波数領域におけるスペクトル漏れの効果を抑制するためのウィンドウ処理の使用。数値または logical の 1 (true) または 0 (false) として指定します。true の場合、関数 imregcorr はブラックマン フィルターを使用してウィンドウ処理を実行します。

出力引数

すべて折りたたむ

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

2 つのイメージ間の位相差のピーク相関値。数値スカラーとして返されます。

ヒント

  • イメージのタイプが 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 で導入