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)は周波数領域でウィンドウ処理を実施するかどうかを指定します。レジストレーション結果の安定性を向上するには、window真正的と指定します。ただし、イメージ内の共通の特徴がエッジに沿った向きになっている場合は、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(真正的) または0(false)として指定します。真正的の場合、関数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 で導入